2012-11-05 25 views
0

我是一個二進制文件的最後一行保存.txt文件的二進制format.But,一個或多個字符被保存即ÿ文件contaningÿ符號,同時節省文本文件作爲二進制數據

爲什麼出現這種情況? 我的代碼是這樣的:

FileOutputStream fout = null; 
InputStream fin; 
String path="something"; 
int i = 0; 
fout = new FileOutputStream(path); 
do { 
    i=fin.read(); 
    fout.write(i); 
} while(i != -1); 
fout.flush(); 
fout.close(); 
+6

「我保存.txt文件的二進制格式。」 - 你什麼意思?你需要更多*更具體,並提供代碼。你的問題目前是無法回答的。 (我看你現在已經提供了一行代碼,希望能有更多的...) –

+0

你使用的是什麼字符編碼? ANSI或UTF或其他東西? –

+0

如果你的文件包含'ÿ',那是因爲這是你寫的,即使你沒有意識到這是你的代碼正在做什麼。 –

回答

2

這是很明顯的:在Y字符(Unicode U + 00FF),你看到的是-1你寫只是退出循環之前。你不應該使用do ... while()這裏,而是使用了比較常見的成語:

while ((i = fin.read()) != -1) 
     fout.write(i); 
+0

好的..謝謝..現在工作 – Nirdesh

+1

也許你應該開始接受你的問題的一些答案。只是一個提示。 –