У меня возникла проблема
Есть массив byte[]
, в котором лежат 6 байт: {-23,-99,38,122,16,0};
Я их записываю в файл:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(encodedStringText)));
writer.write(Arrays.toString(encString));
writer.close();
После этого размер файла вместо положенных 6 становится 26.
Затем я пытаюсь считать, если записывать информацию в String
, получаю те самые 6 первоначальных байт, но при попытке перевести в байты получаю 26 непонятных байт. Считываю так:
reader = new BufferedReader(new InputStreamReader(new FileInputStream(encodedStringText)));
StringBuilder stringBuilder1 = new StringBuilder();
while (reader.ready())
stringBuilder1.append(reader.readLine());
byte[] decArray = stringBuilder1.toString().getBytes();
Результат: {91,45,50,23,.....(26)}
.
В чем проблема?
Использовал различные кодировки: utf-8, utf-16, win1251, cp1251 и т.д., не помогло.
UPD. Встает вопрос, мне необходимо работать с char или же String, поэтому я и пытался считывать через BufferedReader. После того, как получил строку - нужно разбить ее на символы а символы на байты, в эл-тах строки значения те же, что были записаны в качестве байт, но когда пытаюсь перезапись строку в массив байт, то получается фигня. Что же, насчет записи в файл - все получилось и с размером все устаканилось, а как тогда правильно считать с файла?
reader = new BufferedReader(new InputStreamReader(new FileInputStream(encodedStringText)));
StringBuilder stringBuilder1 = new StringBuilder();
while (reader.ready()
stringBuilder1.append(reader.readLine());
byte[] decArray = stringBuilder1.toString().getBytes();
пытаюсь считывать так, опять проблема с тем, что получается в массиве байт
Writer
и Reader
предназначены для работы с символами и со строками, с байтами же удобнее использовать непосредственно OutputStream
и InputStream
, см пример:
@Test
public void test4() throws Exception
{
byte[] array = {-23, -99, 38, 122, 16, 0};
String fileName = "/tmp/test4.tmp"; // замените на ваш файл
FileOutputStream fout = new FileOutputStream(fileName);
fout.write(array);
fout.close();
FileInputStream fin = new FileInputStream(fileName);
byte[] buf = new byte[0x100]; // буфер для чтения
int count = fin.read(buf);
fin.close();
buf = Arrays.copyOf(buf, count); // копируем прочитанные байты
assertArrayEquals(array, buf); // сравниваем с оригиналом
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Проблема: в эмуляторе студии margin работает, а вот на планшете нет, в чем может быть заковырка?
Мне нужно узнать "data-key" элемента в таблице("Some name" на скриншоте) который завернут в тег "td"Можно это сделать используя Selenium WD + Java?
я новичок в androidПишу простое приложение которое транслирует камеру на surfaceView и есть кнопка при нажатии на нее должен метод вытаскивать bitmap