创建文件并使用FileWriter写入文件时获取IO异常

时间:2017-06-24 15:22:13

标签: java

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;


public class FileHandling1 {
    public static void main(String[] args){
            try{
                File file = new File("FileHandlingExample1.txt", "US-ASCII");
                FileWriter writer = new FileWriter(file);
                writer.write("This is the first line.");
                writer.write("This is the seccond line.");
                writer.write("This is the third line.");
                writer.flush();
                writer.close();

            }catch(IOException exception){
                System.out.print("This is an IO Exception");

            }
    }

}

输出: - 这是一个IO异常。

我是Java中的文件处理新手。程序中没有错误。它给出了IO异常。这是为什么?

2 个答案:

答案 0 :(得分:1)

我不确切知道文件所在的路径,但这可能是错误的:

File file = new File("FileHandlingExample1.txt", "US-ASCII");

这意味着您的文件US-ASCII具有父文件夹:FileHandlingExample1.txt

这是您正在使用的File构造函数:

public File(String parent, String child) 

你可能颠倒了争论的顺序。

这句话:

FileWriter writer = new FileWriter(file);

如果命名文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开,则抛出IOException。

答案 1 :(得分:0)

这段代码闻起来是因为你没有暴露出实际出错的地方,你隐藏了关于异常的信息和简单的打印“坏事发生”你需要打印异常的堆栈跟踪,你会看到实际发生了什么。

也许你的文件还不存在,你需要在用它做某事之前先创建它,同时注意你是如何创建文件的,你只需要路径,在使用之前你会很高兴看到javadocs {{3} }

        public class FileHandling1 {
            public static void main(String[] args){
                    try{
                        File file = new File("FileHandlingExample1.txt");
                       file.createNewFile();
                        FileWriter writer = new FileWriter(file);
                        writer.write("This is the first line.");
                        writer.write("This is the seccond line.");
                        writer.write("This is the third line.");
                        writer.flush();
                        writer.close();

                    }catch(IOException e){
                         e.printStackTrace();

                    }
            }

        }