InputStream寫文件出現大量NUL


寫文件大家出現最多的是漢字知碼之類的問題,今天不是亂碼問題,是出現在大量空字符,用記事本打開是不可見的。如果用NodePad++打開則會顯示NUL

問題分題:

剛開始以為是編碼問題,試了幾個編碼發現問題依舊。后來發現在就在最后出來空字符應該是在寫文件時出現了異常。請下以下兩段代碼

//有問題的代碼
try
{ FileOutputStream fos = new FileOutputStream(filePath); byte[] b = new byte[1024];while((in.read(b)) != -1){ fos.write(b);  //問題在此,因為寫的時候沒設置長度每次都寫1024個字節,導致最后不足1024個字節也會寫入大量的空字符 } in.close(); fos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
//修改后的代碼
try
{ FileOutputStream fos = new FileOutputStream(filePath); byte[] b = new byte[1024]; int len=-1; while((len=in.read(b)) != -1){ fos.write(b,0,len);//增加起始長度 每次都寫入實際讀到的長度,所以不會出現空字符。 } in.close(); fos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM