Следующая часть кода пытается ввести символ новой строки в массив байтов и записать массив байтов в файл.Как добавить символ новой строки в массив байтов в Java?
import java.io.*;
public class WriteBytes {
public static void main(String args[]) {
byte[] cities = { 'n', 'e', 'w', 'y', 'o', 'r', 'k', '\n', 'd', 'c' };
FileOutputStream outfile = null;
try {
outfile = new FileOutputStream("newfile.txt");
outfile.write(cities);
outfile.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Содержание NewFile были: newyorkdc
Что я ожидал был:
NewYork
постоянного
Я попытался типаж '\n'
к (byte)'\n'
, но безрезультатно.
Решение: Изменение инициализации массива в
byte[] cities = { 'n', 'e', 'w', 'y', 'o', 'r', 'k', '\r','\n', 'd', 'c' };
я использовал Notepad ++, чтобы просмотреть содержимое file.i предположить, что подавил символ новой строки, но принял возврат каретки с последующим сочетанием новой строки.
То, что вы правильно (я перепроверил, запустив этот код локально). Проблема заключается в том, как вы смотрите на результат. –
@ T.J.Crowder: Я не понимал, что вы подразумеваете под тем, как я смотрю на результат. Разве он не должен писать содержимое массива в новой строке после «\ n»? – Chaipau
Я говорю, что ваш код работал правильно, поэтому, если вы считаете, что содержимое вашего файла - 'newyorkdc', вы ошибаетесь. Либо вы смотрите на старый файл, который не был написан этим кодом, или инструмент, на который вы смотрели, спрятал '\ n' от вас. Когда я запускал ваш код, немодифицированный, я получил файл с байтами '6e 65 77 79 6f 72 6b 0a 64 63' в нем. Обратите внимание, что 8-й байт является новой строкой ('0a'). Когда я делаю 'cat newfile.txt', я вижу новую строку в результате (я использую \ * nix). Код в порядке. –