亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請大家幫我看看這個的輸出為啥多了幾個問號

請大家幫我看看這個的輸出為啥多了幾個問號

丶歸途 2016-08-13 20:52:31
package about_IO;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class Bite { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File file=new File("D:\\io.txt\\IO.txt"); System.out.println(file.exists()); try{ FileInputStream file1=new FileInputStream(file); int a=0; while((a=file1.read())!=-1){ System.out.print((char)a); } file1.close(); }catch(FileNotFoundException e){ System.out.println("文件不存在"); } catch(IOException e){ System.out.println("發生IO異常"); } }}這個是原來的代碼。輸出是這樣的:true???abcde文件內只有abcde幾個字母,希望各位大神解答一下。
查看完整描述

5 回答

?
慕標2337738

TA貢獻23條經驗 獲得超13個贊

因為讀的時候只能一個一個字節的讀,如果包含兩個或者兩個以上就會出現亂碼。加緩存,或者用reader讀,就好了。

?

?

查看完整回答
1 反對 回復 2016-08-13
  • 丶歸途
    丶歸途
    額......不是說JAVA中字母只占一個字節嗎?read也是只取出一個字節,然后輸出。 這里的問題主要是后面的字母已經正常輸出了,只是在前面的輸出多出來了幾個問號。想明白那些問號是怎么出現的。 新上手學的這個,有點搞迷糊了,如果言辭有啥不對的地方,還請見諒啊。
  • 慕標2337738
    慕標2337738
    前面的問號就是里面的其他字符,空格、中文等。 你把FileInputStream file1=new FileInputStream(file);換成 FileReader file1= new FileReader(file);試下。input和output都沒有解碼的功能。
?
千湖之夢

TA貢獻10條經驗 獲得超7個贊

編碼問題

查看完整回答
反對 回復 2016-08-13
?
丶歸途

TA貢獻3條經驗 獲得超3個贊

主要就是想問一下,后面明明已經正常輸出了,為啥前面還會有幾個問號,明明文件里面沒有其他數據了。

查看完整回答
反對 回復 2016-08-13
  • 5 回答
  • 0 關注
  • 2412 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號