2013-03-19 72 views
3

我想輸出字節數組到文件。我創建的字符串在我調用System.out.println(ouput_stream)時正確顯示。懸停,當我使用FileOutputStream時,它不會正確輸出。這是迄今爲止我所擁有的。有什麼建議麼?將字節[]輸出到.txt文件

FileOutputStream fos = new FileOutputStream("outputFile.txt"); 
OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8"); 

String received_string = new String(rPacket.getData(), 0, rPacket.getLength(), "UTF-8"); 

System.out.println(received_string); 
out.write(received_string, 0, received_string.length()); 

控制檯顯示的信息時,我調用的System.out.println(received_string的信息。但是,它不輸出的文件正確。我問過類似的問題早,但現在我在努力的輸出。感謝您的幫助。

+2

字節不是文字。你想展示什麼? – SLaks 2013-03-19 03:01:44

+1

你想輸出一個字節[]還是一個字符串? – Thilo 2013-03-19 03:03:34

+2

你說「它不能正確輸出文件」。在關閉作者後文件包含什麼內容? – NovaDenizen 2013-03-19 03:05:45

回答

0

你的代碼看起來有點怪(你想字節或字符串),但應該沒問題。

你是怎麼在文件中找到嗎?你關閉流/作家在看之前呢?如果不是這樣的話,它可能仍然會被緩衝到某個地方

嘗試避免轉換爲字符串,但是,如果您確實想將該數據包傳輸到文件。

-1

嘗試使用的BufferedWriter ..

BufferedWriter writer = new BufferedWriter(new FileWriter("outfile")); 
writer.write(received_string); 
+0

使用'FileWriter'只會使情況變得更糟,因爲它使用平臺默認編碼,OP要使用UTF-8。 – EJP 2013-03-20 22:53:02

0

不要使用字符串或一個作家都沒有。只需將數據包中的字節直接複製到文件中:

fos.write(rPacket.getData(), rPacket.getOffset(), rPacket.getLength()); 

然後您不可能破壞數據。