当前位置: 代码迷 >> J2SE >> |救命!| 文件读取异常
  详细解决方案

|救命!| 文件读取异常

热度:957   发布时间:2013-02-25 00:00:00.0
|救命!| 文件读取错误
我用eclipse建了个工程


import java.io.*;


public class TestFile {
public static void main(String[] args) {
FileWriter fw = new FileWriter("test.txt");
PrintWriter pw = new PrintWriter("test2.txt");
pw.print("");
}
}

但问什么老是报异常
Exception in thread "main" java.lang.Error: Unresolved compilation problems
Unhandled exception type IOException
Unhandled exception type FileNotFoundException

at TestFile.main(TestFile.java:6)

请问到底什么地方不对?请指教

------解决方案--------------------------------------------------------
需要捕捉异常
try catch
------解决方案--------------------------------------------------------
原因是没有捕获异常,代码编译通不过。
在使用FileWriter,PrintWriter这个两个类的构造方法都会抛出IOException,因为在写文件的时候会判断文件是否存在,比如:FileWriter fw = new FileWriter("k://test.txt");使用k://test.txt这样一个目录,显然硬盘上是不存在这样一个文件和盘符的,所以必须要捕获异常。你如果是用文本编辑器来写程序的话,建议遇到错误 ,先查查API文档。用eclipse或其它IDE开发工具,像这种错误都会时时提示你的。希望能帮到你!
------解决方案--------------------------------------------------------
如无意外,文件不存在
------解决方案--------------------------------------------------------
准确来说,是文件路径下的文件不存在
------解决方案--------------------------------------------------------

try{
你的代码
}catch(Exception e){
}
包裹
------解决方案--------------------------------------------------------
FileNotFoundException文件不存在
读取数据会抛出io异常
要是觉得麻烦就直接throws Exception
不然就try catch处理了
------解决方案--------------------------------------------------------
Java code
try {                FileWriter fw = new FileWriter("test.txt");                PrintWriter pw = new PrintWriter("test2.txt");                pw.print("");                pw.close();                fw.close();            } catch (FileNotFoundException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }
------解决方案--------------------------------------------------------
在eclipse环境下可以直接这样写吗?ide应该有提示捕获异常才对啊,两个方法都要显式的处理异常
------解决方案--------------------------------------------------------
import java.io.*;


public class TestFile {
public static void main(String[] args)throws IOException {
FileWriter fw = new FileWriter("test.txt");
PrintWriter pw = new PrintWriter("test2.txt");
pw.print("");
}
}
抛个异常就行了
------解决方案--------------------------------------------------------
操作IO流的时候抛异常是必不可少一个环节 如果你不会就直接抛给虚拟机处理吧 代码如上 直接在主函数后面加上throws IOException
------解决方案--------------------------------------------------------
不结贴呢?
问题是test2.txt文件没有找到,对于eclipse来说是工程目录下没有此文件。
对于命令行程序来说是当前目录下没有此文件。
而且规范的代码书写要用try{}catch(){代码;}包裹。
如果用IDE则你那个程序书写时就会报错。
  相关解决方案