Java 如何写入和读取同一文件
我目前的问题是,我想写入和读取一个文件,但是,我一直试图抛出异常并实例化我的变量,只是不断得到关于我声明的变量“无法实例化”的错误。我不确定如何解决这个问题 我试过使用PrintWriter和FileWriter,也试过BufferedWriter和其他解决方案,但都没有用。我不知道我还能尝试什么Java 如何写入和读取同一文件,java,file-io,Java,File Io,我目前的问题是,我想写入和读取一个文件,但是,我一直试图抛出异常并实例化我的变量,只是不断得到关于我声明的变量“无法实例化”的错误。我不确定如何解决这个问题 我试过使用PrintWriter和FileWriter,也试过BufferedWriter和其他解决方案,但都没有用。我不知道我还能尝试什么 { public SettingsHandler() { File configFile=new File(this.getClass().getResource("f
{
public SettingsHandler()
{
File configFile=new File(this.getClass().getResource("file").getFile());
try{
file = new Scanner(configFile);
}catch (FileNotFoundException e){
System.out.println("Config.ini not found");
}
}
public void saveSetting(String setting, String value)
{
FileWriter fw;
try{
fw = new FileWriter("myfile.txt", true);
}catch (IOException e){
}
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
}
}
每次我尝试创建PrintWriter时,它都会给我一个bw参数错误:“变量fw可能尚未初始化。”
有人知道如何解决这个问题吗
“变量fw可能尚未初始化。”
您需要更仔细地查看代码。IDE看到了这种情况
FileWriter fw;
try{
fw = new FileWriter("myfile.txt", true); ==> An exception can happen
}catch (IOException e){
nothing to do...
}
BufferedWriter bw = new BufferedWriter(fw); ==> fw is not initialized..
PrintWriter out = new PrintWriter(bw);
这方面的解决办法
情景1
FileWriter fw = null; // Very pointles...
try{
fw = new FileWriter("myfile.txt", true);
}catch (IOException e){
}
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
场景2移动到尝试捕捉
try{
FileWriter fw = new FileWriter("myfile.txt", true); //Well a little better
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
}catch (IOException e){
}
以此类推……只需将变量fw初始化为null,即可解决“变量fw可能未初始化”错误
FileWriter fw=null;这是正确的
--谢谢您的提问。您应该将fw显式设置为
null
。如果IDE(编译器?)在未设置变量的情况下找到路径,它会抱怨。在您的例子中,是catch块。或者将最后两行移到try
块中。当它由于某些IOException而无法打开文件时,您希望它做什么,而您忽略它并尝试写入它。只要让调用方将IOException处理到saveSetting
,或者不要忽略异常哦,天哪,我应该想到这个。。。非常感谢你的帮助!它是固定的