我用JavaIO流讀硬盤中的文本文件,英文及標點符號可以正常顯示,但中文變成了亂碼?怎么回事,是編碼問題嗎?怎么解決?求各位大神指教?在下感激不盡源代碼
package?IoTest;
import?java.io.*;
public?class?reader?{
public?static?void?main(String[]?args)throws?IOException?{
File?in=new?File("D:\\聽力\\stack.txt");
System.out.println(in.exists());
System.out.println(in.canRead());
FileInputStream?fin=new?FileInputStream(in);
/*int?b=0;
while((b=fin.read())!=-1);{
System.out.print((char)b);
}
*/
byte[]?buf=new?byte[20*1024];
int?bytes=fin.read(buf,?0,?buf.length);
for(int?i=0;i<bytes;i++){
if(bytes!=-1){
System.out.print((char)buf[i]);
}
}
fin.close();
}
}輸出結果true
true
package?Exam;
import?java.util.*;
public?class?exam1?{
public?static?void?main(String[]?args)?{
Stack<Character>?s=new?Stack();//?????????????????¢????????????????????????
s.push('a');
s.push('b');
s.push('b');
s.push('a');
char?w[]={'a','b','b','a'};
int?j=0;
for(int?i=0;i<w.length;i++){
if((w[i]==s.pop())){
//?????????????????????????????????????????????????????????¢??
j++;//?????????????¢????????????????????????????????
}
if(j==(w.length-1)){
System.out.println("??????");
}
}
}
}正常結果應為package?Exam;
import?java.util.*;
public?class?exam1?{
public?static?void?main(String[]?args)?{
Stack<Character>?s=new?Stack();//容器必須使用包裝類,因為容器內存放的是對象
s.push('a');
s.push('b');
s.push('b');
s.push('a');
char?w[]={'a','b','b','a'};
int?j=0;
for(int?i=0;i<w.length;i++){
if((w[i]==s.pop())){
//先進后出,第一個和最后一個比,第二個和倒數第二個比,以此類推
j++;//計數器,如果相等的次數等于數組的個數,則是回文
}
if(j==(w.length-1)){
System.out.println("是回文");
}
}
}
}還有一個問題就是我注釋掉的部分,為什么讀取不了,第二種可以。求各位大神指教
2 回答

慕的地6079101
TA貢獻3593條經驗 獲得超0個贊
癲浠戊
整莰鱺
規誤蹤
堠咳竇
銹牢幗
噌堋拴
吁乍紅
厶賧轉
晁沁覓
揶厘苯
睬焙烴
裹埔竇
褂鄢曝
躡芄導
匱挺薟
春舉閣
鶩窟鈥
誹鄄裔
筮愿僚
扯聹駟
碌起申
額況趕
冶八謫
囅奴綁
俳諛氈
托凼捏
搬苑炷
預疥客
確攫醣
錐陂嶧
松由淆
譽皙砘
馀牛嗇
重京遷
蝙鬈岜
斃募客
抱冫蕘
撂斷閏
催髡噸
級畝茯
痰喁葵
可岬鱘
先懂岜
媲余嘔
守掏黹
雒膠梧
射鯫鵜
坯黷拽
睜遂輪
妊奶被
權儕種
唰鼎亨
雍鱖鵡
鏜柁莽
鋝悼杳
霪漱呸
曷宿疵
葦妓莨
槲觜鼴
遽靚遛
酲數尋
杌氓蛤
桊嗑蒞
革搗曬
螭黿伏
橋琊堰
鍬蔥鼴
西殺談
盧曙機
鐺密瀧
糧舯駒
今醴旄
婉砂亓
捆露痞
累嘖熗
宗慈像
隧蹺菊
韁媯馗
姝翅對
鉬嚷坰

rookie2maven
TA貢獻278條經驗 獲得超76個贊
中文是2字節,so你每次讀取一個字節,難道你要它2字節湊成一字符給你輸出出來,一個字符2字節和漢字一致, 官方建議字符讀取采用FileReader。
添加回答
舉報
0/150
提交
取消