-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方法:ストリームからデータを読み取るため
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
フルコードを入力できますか? –