Java 如何写入和读取同一文件

Java 如何写入和读取同一文件,java,file-io,Java,File Io,我目前的问题是,我想写入和读取一个文件,但是,我一直试图抛出异常并实例化我的变量,只是不断得到关于我声明的变量“无法实例化”的错误。我不确定如何解决这个问题 我试过使用PrintWriter和FileWriter,也试过BufferedWriter和其他解决方案,但都没有用。我不知道我还能尝试什么 { public SettingsHandler() { File configFile=new File(this.getClass().getResource("f

我目前的问题是,我想写入和读取一个文件,但是,我一直试图抛出异常并实例化我的变量,只是不断得到关于我声明的变量“无法实例化”的错误。我不确定如何解决这个问题

我试过使用PrintWriter和FileWriter,也试过BufferedWriter和其他解决方案,但都没有用。我不知道我还能尝试什么

{
    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
,或者不要忽略异常哦,天哪,我应该想到这个。。。非常感谢你的帮助!它是固定的