0
我建了一个程序,读取XML文件的,当我在NetBeans中运行它,它的工作原理和人物都是可读的外观图像opening in netbeansPrintReader返回乱码
,但是当我从DIST文件夹中运行它,它的作品,但是当我尝试打开文件夹包含阿拉伯语显示它像人物形象 opening from dist folder
这是一些开放代码的
int option = chooser.showOpenDialog(this);
if(option == JFileChooser.APPROVE_OPTION){
if(chooser.getSelectedFile()!=null){
try {
reader = new FileReader(chooser.getSelectedFile());
BufferedReader buff = new BufferedReader(reader);
text.read(buff, null);
opened = chooser.getSelectedFile();
this.setTitle(chooser.getSelectedFile().getAbsolutePath());
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "الملف غير موجود", "خطأ", JOptionPane.ERROR_MESSAGE);
}finally{
if(reader!=null)try {
reader.close();
} catch (IOException ex) {
}
}
}
}
感谢他的工作 –
['FileReader'](http://docs.oracle.com/javase/8/docs/api/java/io/FileReader.html)只是一个方便的类,结合了'InputStreamReader'和'FileInputStream'。 javadoc也这么说。尽管使用新的Path API是很好的,但没有必要。正如javadoc所说:*此类的构造函数假定默认的字符编码和默认的字节缓冲区大小是适当的。要自己指定这些值,请在FileInputStream上构造一个InputStreamReader。*这意味着'new InputStreamReader(new FileInputStream(chooser.getSelectedFile()),“UTF-8”)也可以工作。 – Andreas
@Andreas我想说的是FileReader无法指定编码;是为本地文件。便利类文件也很好理解。您的InputStreamReader的优势在于其清晰的基本性质,即二进制流与文本读写器之间的桥梁。谢谢 –