黑马程序员技术交流社区
标题:
Properties Load方法出现乱码
[打印本页]
作者:
flying
时间:
2014-2-21 00:27
标题:
Properties Load方法出现乱码
代码如下
public static void testProperty(){
FileInputStream fis =null;
Properties prop = null;
try {
fis = new FileInputStream("F:\\1.txt");
prop=new Properties();
prop.load(fis);
prop.list(System.out);
} catch(IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null)
fis.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
复制代码
1.txt里面是:
张三=12李四=15
程序运行结果是
1.png
(4.51 KB, 下载次数: 156)
下载附件
2014-2-21 00:23 上传
用的字节流 按说不应该涉及 jbk utf-8等编码表的吧?
作者:
a944636422
时间:
2014-2-21 09:40
你的1.txt是以什么作为分隔符的?txt中有中文吗?txt文件一般不会存在编码问题,试试把eclipse工作区间改成utf-8的编码试试
作者:
sinxy
时间:
2014-2-21 09:48
Properties使用的是ISO 8859-1编码表输入输出,而你在记事本里写的中文,记事本编码使用的不是ISO 8859-1编码表,load读取输入流时,使用的是ISO 8859-1表。所以出现????还有配置信息使用.properties存储
作者:
榨菜
时间:
2014-2-21 11:30
检查下记事本另存为的时候,选择的是什么码表
作者:
flying
时间:
2014-2-21 14:14
现在可以 用字符流读入就行了 或者字节转成字符流
public static void testProperty(){
FileInputStream fis =null;
BufferedReader bufr =null;
Properties prop = null;
FileReader fr=null;
try {
fr = new FileReader("F:\\1.txt");
//fis = new FileInputStream("F:\\1.txt");
// bufr= new BufferedReader(new InputStreamReader(fis,"gbk"));
prop=new Properties();
prop.load(fr);
prop.list(System.out);
} catch(IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null)
fis.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2