Форум программистов, компьютерный форум, киберфорум
Наши страницы

Java SE (J2SE)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
VaCool
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 4
#1

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

05.06.2013, 22:05. Просмотров 1822. Ответов 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 - Java SE
Добрый вечер! Прошу простить за дико дурацкий вопрос... Подскажите пожалуйста как из ByteArrayInputStream прочитать байты в массив....

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

ByteBuf запись и чтение массива байтов - Java SE
Как можно в ByteBuf записать массив байтов и потом считать его? Я записываю: else if(obj instanceof byte) { ...

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

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

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

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

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

Добавлено через 1 минуту
Я так понял вы хотите скопировать Файл в массив байтов,затем за кодировать его?
0
VaCool
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 4
06.06.2013, 01:13  [ТС] #3
Да, я хочу закодировать файл ксором, налаживая на него друой файл, но мои познания джавы слишком малы что бы решить эту проблему((( Не могли бы вы скинуть хоть примерный код решения данной проблемы?
0
Care
77 / 33 / 3
Регистрация: 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 / 3
Регистрация: 04.06.2013
Сообщений: 295
06.06.2013, 01:33 #5
и лучше использовать int [] так как в байтов массив могут не влезть символы UTF я так понял...

Вот сама программа
0
Care
77 / 33 / 3
Регистрация: 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
Привет! Вот еще темы с ответами:

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

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

Даны 2 массива: массив слов MS и массив байтов MB - Assembler
Даны 2 массива: массив слов MS и массив байтов MB. Разделить со знаком попарно MS/MB и образовать массивы частных (MCH) и остатков (MO)....

Преобразовать массив байтов в массив строк - C#
Собствено нужно преобразовать массив байтов в массив строк=) пример a = 71 b = 71(string)


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

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

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