java:写入流后数据更改的长度

java:写入流后数据更改的长度,java,fileoutputstream,printstream,Java,Fileoutputstream,Printstream,我已经在FileOutputStream中保存了一个二进制数据,但是当我检查前后数据的长度时,发现它从72变为106。 这是我的方法: inputStream = new FileInputStream(certificate_file); /*Certificate file is a Path of a binary file */ pubkey = readFromStream(inputStream, 0, 71); System.out.println("length of pub

我已经在FileOutputStream中保存了一个二进制数据,但是当我检查前后数据的长度时,发现它从72变为106。 这是我的方法:

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 */
将数据写入outputstream的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;
}
public静态字符串readFromStream(InputStream InputStream,int begin,int end)引发异常{
int i=0;
int data=inputStream.read();
串出“”;
while(数据!=-1){

如果(i>=begin&&i我已经解决了这个问题,我将数据从字符串转换为字节[],并将读入的readFromStream更改为readAllBytes。

请将您的问题包括在内。a
PrintStream
不适用于二进制数据。您如何准确地检查前后的长度?能否提供完整的代码?