FileInputStream错误Java

Bre*_*ett 1 java fileinputstream

我试图用Java读取一个名为"KFormLList.txt"的文件.它与此程序一起保存在默认包中,但是当我尝试运行它时,我收到以下错误消息:"错误:KFormLList.txt(系统找不到指定的文件)"

我究竟做错了什么?谢谢你的帮助.

import java.io.*;

public class VLOCGenerater {

/**
 * @param args
 */
public static void main(String[] args) {
    try {
        //Read the text file "KFormLList.txt"
        FileInputStream fis = new FileInputStream("KFormLList.txt");

        DataInputStream dis = new DataInputStream(fis);
        BufferedReader br = new BufferedReader(new InputStreamReader(dis));
        String strLine;
        int V = 0;
        int LOC = 0;

        while((strLine = br.readLine())!= null ){
            if (strLine.trim().length() != 0){
                System.out.println(strLine);
                V++;
                }
            else {
                LOC++;
            }
        }
        System.out.println("V = " + V);
        System.out.println("LOC = " + LOC);
        dis.close();
     }
     catch (Exception e){
     System.err.println("Error: " + e.getMessage());
    }

}

}
Run Code Online (Sandbox Code Playgroud)

Kev*_*sox 5

尝试将文本文件放在项目的根目录中.

传递给FileInputStream构造函数的name参数是文件系统中文件的路径名.

路径名,无论是抽象的还是字符串形式,可以是绝对的或相对的.绝对路径名是完整的,因为不需要其他信息来定位它表示的文件.相反,相对路径名必须根据从其他路径名获取的信息来解释.默认情况下,java.io包中的类始终解析当前用户目录的相对路径名.此目录由系统属性user.dir命名,通常是调用Java虚拟机的目录.

我假设您使用的是Eclipse,默认情况下Eclipse会将其设置user.dir为您项目的根目录.通过阅读其他材料,Netbeans遵循相同的惯例.

这可以使用以下代码进行测试,该代码应输出项目的路径:

System.out.println(System.getProperty("user.dir"));
Run Code Online (Sandbox Code Playgroud)

将文件放在目录的根目录中可以找到它FileInputStream.