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哪里没反应?读不进文本里?求讲解
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哪里没反应?读不进文本里?求讲解
解决方案 »
- java将对象写入文件
- arrayList中remove方法--------------------------------------------------
- 谁用applet做过arcims呀? 其中有个悬浮在地图上的信息,我现在想让它换行?高手来看看了。。。。。
- 想用google下点东西,为什么有问题??
- 散分
- 如果在application里面实现声音提示
- 如何控制Java的命令行方式屏蔽显,达到同一行刷新的效果?
- java socket通讯,java调用c++服务器
- tcp socket
- MyEclipse配置问题:Server不见了
- 如何在应用程序内调用浏览器?
- 使用Java操纵Clipboard的问题,复制的文本并不同步。
kit.read(isr, JText.getDocument(), 0);
我的FIS不是只创建一次对象?哪里再创建另外的流对象了吧大神,求指教
放在else哪里?不是很看得明,,不过还是要感谢
我的FIS不是只创建一次对象?哪里再创建另外的流对象了吧大神,求指教 else{//打开ANSI编码txt文件,没反应,没写进文本里,是什么问题?
InputStreamReader isr=new InputStreamReader(FIS);
BufferedReader bf=new BufferedReader(isr);
String St=null;FIS在前面已经读了三个字节了....
我的FIS不是只创建一次对象?哪里再创建另外的流对象了吧大神,求指教 else{//打开ANSI编码txt文件,没反应,没写进文本里,是什么问题?
InputStreamReader isr=new InputStreamReader(FIS);
BufferedReader bf=new BufferedReader(isr);
String St=null;FIS在前面已经读了三个字节了....我好像听明白了,感谢大神,,那是不是我在前面close()或者建多一个Fileinputstream就可以用了?