日期:2014-05-20  浏览次数:20854 次

读入文件出错.附代码.
Java code
import java.io.*;
public class fd
{
    public static void main(String []args)
    {
        String fname="ReadFile.java";
        File f=new File(fname);
        try
        {
            FileReader fr=new FileReader(f); //这是一个什么类,有什么作用
            BufferedReader br =new BufferedReader(fr);
            String s=br.readLine();
            while(s!=null)  //s 是指针吧,但java没有指针
            {
                System.out.println("读入:"+s);
                s=br.readLine();
            }
            br.close();
        }catch(FileNotFoundException e1)  //没有throw 怎么会可以catch呢
        {
            System.err.println("File not Found"+fname);  
        }catch(IOException e2)
        {
            e2.printStackTrace();
        }
    }
}

反正最后程序还出错....

------解决方案--------------------
无法找到文件吧?呵呵

你把ReadFile.java的路径改成绝对路径试试

------解决方案--------------------
s不是指针,是一个String对象的引用,你自己定义的,hoho

throw是这一行s=br.readLine();抛出的


------解决方案--------------------
请把错误信息贴出了,程序我试过了,没有问题。你说的出错是“File not FoundReadFile.java”吗?
------解决方案--------------------
ReadFile.java 路径
try{
}catch{
}
------解决方案--------------------
探讨
无法找到文件吧?呵呵

你把ReadFile.java的路径改成绝对路径试试


------解决方案--------------------
//这是一个什么类,有什么作用
自己查文档
 //s 是指针吧,但java没有指针
s 是reference,引用
//没有throw 怎么会可以catch呢
 FileReader fr=new FileReader(f);
FileReader()构造方法抛出异常,可以看源代码或者文档
该构造方法定义:
public FileReader(String fileName) throws FileNotFoundException {
super(new FileInputStream(fileName));
}
------解决方案--------------------
楼上说的对
------解决方案--------------------
ReadFile.java文件存放在fd.class同一目录下.
------解决方案--------------------
感觉楼主学了一圈又转回到起点了,

Java code
import java.io.*;

public class ReaderTest  //类名一定要有意义,且首字符最好大写,坏习惯养成了可不好改
{

    public static void main(String[] args)
    {
        String fname = "ReadFile.java";  //注意格式:运算符两边留空格
        File f = new File(fname);
        try
        {
            FileReader fr = new FileReader(f);  //从文件中读取字符序列,详见 JDK API 文档
            BufferedReader br = new BufferedReader(fr);
            String s = br.readLine();
            while(s != null)  //s 是指针吧,但java没有指针:本质上和 C/C++ 里指针差不多,Java 里叫引用,而且使用起来更安全
            {
                System.out.println("读入:" + s);
                s=br.readLine();
            }
            br.close();  //最好放 finally 块里
        }
        catch (FileNotFoundException e1)  //没有throw 怎么会可以catch呢:异常不一定是你自己通过 throw 往外抛的,在方法调用时方法也可能抛出异常
        {
            System.err.println("File not Found"+fname);  
        }
        catch (IOException e2)
        {
            e2.printStackTrace();
        }
    }

}

------解决方案--------------------
探讨
感觉楼主学了一圈又转回到起点了

------解决方案--------------------
正解
探讨
//这是一个什么类,有什么作用
自己查文档
//s 是指针吧,但java没有指针
s 是reference,引用
//没有throw 怎么会可以catch呢
FileReader fr=new FileReader(f);