在E盘新建一个文件s2.txt,内容如下
以下代码,可以打印出文件中的内容,
public static void main(String[] args) throws IOException {
Properties prop = new Properties(); //定义 properties 对象
FileInputStream fis = new FileInputStream("E:\\s2.txt");
FileOutputStream fos = new FileOutputStream("E:\\s2.txt");
prop.load(fis);
System.out.println(prop); //不可以打印出文件中的内容
fis.close();
fos.close();
}
我们看到控制台输出的结果是这样的:
但是如果我们将代码稍微更改以下顺序:
public static void main(String[] args) throws IOException {
Properties prop = new Properties(); //定义 properties 对象
FileInputStream fis = new FileInputStream("E:\\s2.txt");
FileOutputStream fos = new FileOutputStream("E:\\s2.txt");
prop.load(fis);
System.out.println(prop); //不可以打印出文件中的内容
fis.close();
fos.close();
}
在这里我们会发现,文件中的内容无法打印出来
在这里得到了一个空的集合
解决方案一 : 其实是在FileOutputStream fos = new FileOutputStream("E:\\s2.txt");这句代码中,将文件清空了,只要把FileOutputStream设置为追加模式就ok了,把上面这行代码改成FileOutputStream fos = new FileOutputStream("E:\\s2.txt",true); 问题解决.
解决方案二 : FileOutputStream fos = new FileOutputStream("E:\\s2.txt");把这行代码换一个位置,等FileInputStream读完了文本数据,再创建FileOutputStream,这样就算清空文件也不会受到影响了