2017-04-02 26 views
0

現在、割り当てを行っていて、ファイルに書き込むバイト配列があります。 バイト配列をファイルの外に戻すことができるようにしたいのですが、逆の処理を行いますが、正しい値を返すとは思いません。 バイト配列を文字列に変換してバイト配列に戻す

この

はテキストファイル

PrintWriter fw = new PrintWriter(new BufferedWriter(new FileWriter("tc.txt",true))); 
KeyPair keyPair = generateKeyPair(); 
byte[] publicKey = keyPair.getPublic().getEncoded(); 
byte[] privateKey = keyPair.getPrivate().getEncoded(); 
fw.println(email +" " + publicKey + " " + privateKey); //adds the site into the text file whcih contains all the blacklisted sites 
fw.flush(); 

に書き込むためのコードであると私は戻って、文字列などの情報を取得し、この

のようなバイト配列に戻ってそれを変換するために)(.getBytesを使用するようにしてください
tempPublicKey = (blScanner.next()).getBytes(); 

それは正しいとは思われません、間違っていることが起こっていますか?あなたは、このテキストファイルを読み込むときに

+0

あなたはどんなインプットを与えていますか、どのようなアウトプットを受け取りますか? – nhouser9

+1

これは、各バイト配列(バイト配列の内容を持たない)のtoString()表現をファイルに書き込みます。バイトをファイルに書き込む正しい方法ではありません。バイト配列の内容を読み込んで返す方法はありません。 –

答えて

0

あなたはテキストファイル任意バイトシーケンスを作成していると、書き込みと復号時encoding your bytes to base64 formatを検討してください。いくつかのバイトが書式設定文字として認識される可能性があるため

テキストファイルは

base64にあなたのバイトをエンコードし、それをバックデコードなど、など、任意のバイト列を格納および取得するのに適していない時に、あなたのバイトシーケンスを保持しますテキストファイルとの間での読み書き。

関連する問題