Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
VaCool
0 / 0 / 1
Регистрация: 03.06.2013
Сообщений: 4
#1

Массив байтов - Java SE

05.06.2013, 22:05. Просмотров 1904. Ответов 5
Метки нет (Все метки)

Не могу создать массив большой длины, почему? Помогите разобраться, от код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class XorOperation {
        public static byte[] buffer;
        public static byte[] buffer1;
     public static void main(String args[])
      {  
            list();   
            list2();
      }
     static void list()
      { 
         try{
         File file = new File("E:\\320.18-notebook-win8-win7-64bit-international-whql.exe");
         file.createNewFile();
         FileInputStream fis = new FileInputStream(file);
         BufferedInputStream bis = new BufferedInputStream(fis);
         buffer = new byte[(int)file.length()];
         bis.read(buffer);
         fis.close();
         
         File file1 = new File("E:\\RoundButton (1).png");
         file.createNewFile();
         FileInputStream fis1 = new FileInputStream(file1);
         BufferedInputStream bis1 = new BufferedInputStream(fis1);
         buffer1 = new byte[(int)file1.length()];
         bis1.read(buffer1);
         fis1.close();   
         }
         catch (IOException e)    {   }
         int j=0;    
         for(int i=0; i<buffer.length; i++)
         {
             if(j>=buffer1.length){
                 j=0;
             }
             int k = buffer[i];
             int d = buffer1[j];
             k=k^d;
             buffer[i]=(byte) k;
             j++;
         }   
      }
     
     static void list2()
      {      
         try{
             File file = new File("E:\\RoundButton2.exe");
             int j = 0;
             for(int i=0; i<buffer.length; i++)
             {
                 if(j>=buffer1.length){
                     j=0;
                 } 
                 int k = buffer[i];
                 int d = buffer1[j];
                 k=k^d;
                 buffer[i]=(byte) k;
                 j++;
             }
             FileOutputStream os = new FileOutputStream(file);
             os.write(buffer);
             os.close();
         } catch (Exception e) { }
     
      }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 22:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Массив байтов (Java SE):

Считывание байтов в массив из ByteArrayInputStream
Добрый вечер! Прошу простить за дико дурацкий вопрос... Подскажите пожалуйста...

Вывод с диапазона байтов
Здравствуйте подскажите пожалуйста, как с помощью побитовых операций можно...

ByteBuf запись и чтение массива байтов
Как можно в ByteBuf записать массив байтов и потом считать его? Я записываю:...

Как получить файл из массива байтов?
подскажите, как получить файл из массива байтов?

Временное хранилище для байтов (буфер)
Нужно мне стало передать пакет по сокетам. Пакет состоит из: VarInt-длина...

Как получить hexidecimal string из массива байтов?
21

5
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
05.06.2013, 23:38 #2
1 байт = -127 до 126 помойму , а вы наверно пытаетесь больше засунуть...

Добавлено через 2 минуты
Есть готовое терминальное приложения с алгоритмом шифрования основоном на XORe + запись в файл кодированного текста и чтения его... и да лучше использовать массив интов так как у меня возникла трабла что строка не может содержать больше 127 символов...
Если хотите могу выложить...

Добавлено через 1 минуту
Я так понял вы хотите скопировать Файл в массив байтов,затем за кодировать его?
0
VaCool
0 / 0 / 1
Регистрация: 03.06.2013
Сообщений: 4
06.06.2013, 01:13  [ТС] #3
Да, я хочу закодировать файл ксором, налаживая на него друой файл, но мои познания джавы слишком малы что бы решить эту проблему((( Не могли бы вы скинуть хоть примерный код решения данной проблемы?
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
06.06.2013, 01:29 #4
Да мои тоже не очень очень не большие ) все своими силами ) Могу скинуть исходник один , если вы только там разберетесь... Щас только найду)

Добавлено через 4 минуты
Вот нашел методы шифрования которые использовал :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public static byte[] uncodingFileStream(File file) throws FileNotFoundException,IOException{
    
    DataInputStream inPut = new DataInputStream
       (new BufferedInputStream
              (new FileInputStream(file)));
    
      byte[] inBytes = new byte[(int) file.length()];
      inPut.read(inBytes);
      for(byte i = 0; i < inBytes.length; i++){
          int temp = inBytes.length + i;
          inBytes[i] = (byte) (inBytes[i]^temp);
      }
      inPut.close();
      return inBytes;
    
}
 
public static byte[] codingFileStream(File file,byte[] outBytes) throws FileNotFoundException,IOException{
    DataOutputStream outPut = new DataOutputStream(
              new BufferedOutputStream(
                      new FileOutputStream(file)));
    for(byte i = 0; i < outBytes.length; i++){
          int temp = outBytes.length + i;
          outBytes[i] = (byte) (outBytes[i]^temp);
      }
      
      outPut.write(outBytes);
      outPut.flush();
      outPut.close();
      return outBytes;
}
только не забудте добавть блок finally ото тогда я забыл)
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
06.06.2013, 01:33 #5
и лучше использовать int [] так как в байтов массив могут не влезть символы UTF я так понял...

Вот сама программа
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
06.06.2013, 01:37 #6
Где то я ещё так же спомощью StringTokenizer'a и шифрования создовал Самодельные Зашефрованные базы данны
0
06.06.2013, 01:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 01:37
Привет! Вот еще темы с решениями:

Как узнать сколько байтов в памяти занимает объект?
Есть ли в Java аналог sizeOf?

Использование объекта типа String как промежуточного для передачи массива байтов
Проблема заключается в следующем - нужно, имея массив byte, в который...

Даны массив слов MS и массив байтов MB. Разделить со знаком попарно MS/MB и образовать массивы частных и остатков
Дана такая задача по ассемблеру: даны 2 массива: массив слов MS и массив...

Преобразовать форматированный массив байтов в массив строк
Всем здравствуйте. Eсть массив байтов, содержащий, числа представленные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru