2017-12-03 9 views
1

私のJavaプログラムでは、ファイルに書き込む必要のあるバイト配列のリストを取得します。私が前に試したことは、バイナリをファイルに書き込んで証明する方法は?

FileWriter fw = new FileWriter("file.out"); 
BufferedWriter bw = new BufferedWriter(fw); 

bw.write(new String(data)); 
bw.flush(); 

リストからのバイト[]である。 私はそれを文字列に変換しているので、私はバイナリの正確性を失っていると思います。

私は今FileOutputStreamで試しています。

File myFile = new File("file.out"); 
FileOutputStream fos = new FileOutputStream(myFile); 
BufferedOutputStream bos = new BufferedOutputStream(fos); 

bos.write(data); 
bos.flush(); 

また、データはリストからのバイト[]です。

私の質問は、私の書かれたファイルが本当にバイナリの正しさを確認する方法です。ファイルの各行をbyte []として読み込み、それを入力と比較すると完全に同じになるでしょうか?

+1

ユニットテストを検討しましたか? –

+1

はい、バイナリファイルだけが行を持たず、ファイル全体をバイト配列に読み込んで比較しますが、それらは同じでなければなりません。 – Oleg

+1

Linuxユーザーの方は、xxdコマンドを使用してバイナリファイルのデータを表示することができます – Alireza

答えて

0

をファイルにあなたの配列を書き込むには:

List<byte[]> list = new ArrayList<byte[]>(); 
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filePath)); 
out.writeObject(list); 

当時と同じファイルから配列を読み取るために:

ObjectInputStream in = new ObjectInputStream(new FileInputStream(filePath)); 
List<byte[]> byteList = (List<byte[]>) in.readObject(); 

注 - これは、ストリームの例外処理などを配置含まれていません。

関連する問題