用java修改文件
我试图修改文件设置中与用java修改文件,java,file,properties,Java,File,Properties,我试图修改文件设置中与ip对应的值。在控制台中,在我调用changeIp()后,它会打印出所需的结果,但不会更改文件 这就是我所做的: public class Settings { public static void main(String[] args){ changeIp("abc"); } public static void changeIp(String ip) { Properties ps = new Properties
ip
对应的值。在控制台中,在我调用changeIp()
后,它会打印出所需的结果,但不会更改文件
这就是我所做的:
public class Settings {
public static void main(String[] args){
changeIp("abc");
}
public static void changeIp(String ip) {
Properties ps = new Properties();
// Create the file object
File fileObj = new File("settings.txt");
try {
FileInputStream fis = new FileInputStream(fileObj);
ps.load(fis);
ps.put("ip", ip);
System.out.println("Get A:" + ps.getProperty("ip"));
} catch (Exception err) {
err.printStackTrace();
}
}
我必须指出,该文件已经存在,并且它具有一些预设值,您必须使用这些值将属性写入文件
OutputStream os = new FileOutputStream("output-file-name.properties");
ps.store(os, "");
您必须使用将属性写入文件
OutputStream os = new FileOutputStream("output-file-name.properties");
ps.store(os, "");
ps.put(“ip”,ip)
更新堆上的属性的值
对象,而不是硬盘中文件的值
如果要将属性对象的状态关联到文件,则需要显式地执行此操作
所以就像ps.load(fis)
负责将状态从源加载到Properties
对象一样,ps.store(output,comment)
可以用于将属性状态存储在所需的输出流中,该输出流可以指向文件。ps.put(“ip”,ip)
更新堆上的属性的值,而不是硬盘驱动器文件中的值
如果要将属性对象的状态关联到文件,则需要显式地执行此操作
因此,就像ps.load(fis)
负责将状态从源加载到属性
对象一样,ps.store(output,comment)
可以用于将属性状态存储在所需的输出流中,该输出流可以指向文件。为什么您认为您的代码应该更改文件?哪一部分应该确保您的文件应该被更改?更改属性后,您从不保存文件。您已经读取文件,但从未写入任何内容ps.put(“ip”,ip)没有更改值吗?不,它没有(更改文件[这是您要问的]),JavaDoc没有这样说。它只改变了一个值pfps
,其他什么都没有。为什么你认为你的代码应该改变文件?哪一部分应该确保您的文件应该被更改?更改属性后,您从不保存文件。您已经读取文件,但从未写入任何内容ps.put(“ip”,ip)没有更改值吗?不,它没有(更改文件[这是您要问的]),JavaDoc没有这样说。它只改变一个值pfps
,其他什么都不改变。我如何使用它?有两种方法,参数为OutputStream、String或Writer、String?如何使用它?有两种方法,参数为OutputStream、String或Writer、String?写入时会出现错误:ps.store(fis)。它告诉我重命名store我的答案不是关于fis
,而是关于fos
,它将引用FileOutputStream
。当我写入时,它给了我一个错误:ps.store(fis)。它告诉我重命名Store我的答案不是关于fis
,而是关于fos
,它将引用FileOutputStream
。