0

执行以下代码时出现运行时异常。我看不出有什么问题。

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;

public class FileIO {

    public static void main(String[] args){

        File test = new File("test.txt");

        FileOutputStream ostream = new FileOutputStream(test); 

        PrintWriter out = new PrintWriter(ostream);
    }
}

我不断得到一个FileNotFoundException. 我已经尝试将文件保存在项目中每个可能的文件夹中,并尝试给出明确的路径,但我一直遇到同样的异常。有任何想法吗?

4

5 回答 5

2

当我尝试这个时,它甚至没有编译。我不得不说主要throws FileNotFoundException

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.FileNotFoundException;

public class FileIO 
{

    public static void main(String[] args) throws FileNotFoundException
    {

        File test = new File("test.txt");

        FileOutputStream ostream = new FileOutputStream(test); 

        PrintWriter out = new PrintWriter(ostream);            
    }
}

这工作得很好,没有错误

于 2012-10-09T22:44:48.110 回答
0

执行以下代码时出现运行时异常。

不,你没有。尝试编译时收到编译器错误消息。该消息告诉您 new FileOutputStream 抛出 FileNotFoundException 并且您的代码没有捕获它。所以修复你的代码来做到这一点,或者将 main() 声明为“抛出 FileNotFoundException”。

于 2012-10-10T00:58:26.017 回答
0

答案无疑是当前目录不是你想的那样。

在初始化文件变量后立即添加这行代码:

System.out.println(test.getAbsolutePath());

问题应该很明显。

或者,指定一个绝对路径:

File test = new File("/mydir/test.txt");
于 2012-10-09T22:45:04.860 回答
0

当前目录中的文件很可能是只读的,并且禁止test.txt尝试打开它进行写入(通过实例化 type 类)。FileOutputStream

检查文件的权限或删除它并再次运行您的程序(在try catch为.FileNotFoundExceptionFileOutputStream

例如:

    try {
        ostream = new FileOutputStream(test);
        PrintWriter out = new PrintWriter(ostream); 
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }  
于 2012-10-09T22:52:25.997 回答
0

基于File 类FileOutputStream 类,试试这个:

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;

public class FileIO {

    public static void main(String[] args){

        File test = new File("test.txt");

        if (test.exists()) {
            if (!test.isFile()) {
                System.out.println("File " + test.getAbsolutePath() + " is not a regular file!");
                System.exit(1);
            } else if (!test.canWrite()) {
                System.out.println("Can not write to file " + test.getAbsolutePath() + "!");
                System.exit(1);
            }
        } else {
            test.createNewFile();
        }

        FileOutputStream ostream = new FileOutputStream(test); 

        PrintWriter out = new PrintWriter(ostream);
    }
}

这将检查常见的错误情况。

  • 文件已存在
  • 文件不是常规文件
  • 文件无法写入
于 2012-10-09T22:53:36.030 回答