2016-08-31 3 views
-2

Ich habe eine binäre Daten in FileOutputStream gespeichert, aber wenn ich die Länge der Daten vor und nach dem ich festgestellt, dass es von 72 auf 106 ändert. Dies ist meine Methode:java: Länge der Daten ändert sich nach dem Schreiben in Strom

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 Verfahren Daten in Output zu schreiben:

public void writeToStream(String path, String data) 
     throws FileNotFoundException { 
    OutputStream os = new FileOutputStream(path); 
    PrintStream printStream = new PrintStream(os); 
    printStream.print(data); 
} 

Readfromstream-Verfahren Daten aus dem Strom zu lesen:

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; 
} 

Warum habe ich dieses Problem?

+2

Bitte [Bearbeiten] Ihre Frage ein [MCVE] aufzunehmen. –

+4

Ein '' PrintStream'' ist nicht für Binärdaten. Und wie genau überprüfen Sie die Länge vorher und nachher? – f1sh

+0

Können Sie Ihren vollständigen Code angeben? –

Antwort

0

ich das Problem gelöst haben, transformiert ich die Daten von String in Bytes [] und ich die Lese in Readfromstream zu ReadAllBytes geändert.

Verwandte Themen