首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

txt编码,io读取解决办法

2013-08-21 
txt编码,io读取JFileChooser JFCnew JFileChooser()int resultJFC.showOpenDialog(this)if(resultJF

txt编码,io读取

JFileChooser JFC=new JFileChooser();
int result=JFC.showOpenDialog(this);
if(result==JFileChooser.CANCEL_OPTION){
return;
}
else{
File file=JFC.getSelectedFile();
try{
FileInputStream FIS=new FileInputStream(file);
byte[] bt=new byte[3];
FIS.read(bt, 0, bt.length);
if(bt[0]==(byte)0xff&&bt[1]==(byte)0xfe){//能正确输出unicode
System.out.println("unicode");
}
else if(bt[0]==(byte)0xfe&&bt[1]==(byte)0xff){//能写入记事本,虽然乱码
InputStreamReader isr=new InputStreamReader(FIS);
BufferedReader bf=new BufferedReader(isr);
String St=null;
while((St=bf.readLine())!=null){
JText.append(St);
}
FIS.close();
}
else if(bt[0]==(byte)0xef&&bt[1]==(byte)0xbb&&bt[2]==(byte)0xbf){
System.out.println("utf-8");
}
else{//打开ANSI编码txt文件,没反应,没写进文本里,是什么问题?
InputStreamReader isr=new InputStreamReader(FIS);
BufferedReader bf=new BufferedReader(isr);
String St=null;
while((St=bf.readLine())!=null){
JText.append(St);
}
FIS.close();
}
}
catch(IOException e1){
System.out.println("ffgwegwegewg");
}
}



问题在注释,为什么最后一个else哪里没反应?读不进文本里?求讲解
[解决办法]
DefaultEditorKit kit = new DefaultEditorKit();
kit.read(isr, JText.getDocument(), 0);

[解决办法]
那个FIS的流已经开始读了,就不能拿来再创建另外的流对象了吧

热点排行