-2
Я сохранил двоичные данные в FileOutputStream, но когда я проверяю длину данных до и после того, как обнаружил, что он изменяется с 72 до 106. Это мой метод:java: Длина данных после записи в потоке
inputStream = new FileInputStream(certificate_file);
/*Certificate file is a Path of a binary file */
pubkey = readFromStream(inputStream, 0, 71);
System.out.println("length of pubkey: "+pubkey.length());
/* This return : length of pubkey: 72 */
writeToStream(path + "pubkey.bin", pubkey);
inputStream = new FileInputStream(path + "pubkey.bin");
pubkey = readFromStream(inputStream);
System.out.println("length of pubkey: "+pubkey.length());
/* This return : length of pubkey: 106 */
метод writeToStream для записи данных в OutputStream: метод
public void writeToStream(String path, String data)
throws FileNotFoundException {
OutputStream os = new FileOutputStream(path);
PrintStream printStream = new PrintStream(os);
printStream.print(data);
}
readFromStream для чтения данных из потока:
public static String readFromStream(InputStream inputStream, int begin, int end) throws Exception {
int i = 0;
int data = inputStream.read();
String out = "";
while (data != -1) {
if (i >= begin && i <= end) {
out += (char) data;
}
data = inputStream.read();
i++;
}
return out;
}
public static String readFromStream(InputStream inputStream) throws Exception {
int i = 0;
int data = inputStream.read();
String out = "";
while (data != -1) {
out += (char) data;
data = inputStream.read();
i++;
}
return out;
}
Почему у меня есть эта проблема?
Пожалуйста, отредактируйте ваш вопрос, чтобы включить [mcve]. –
«PrintStream'' не для двоичных данных. И как именно вы проверяете длину до и после? – f1sh
Можете ли вы предоставить полный код? –