在Java中读取文件时,它找不到该文件

在Java中读取文件时,它找不到该文件,java,file,Java,File,我编写了以下代码,用于在Java中读取txt: public static void main(String[] args) throws FileNotFoundException, IOException { // TODO code application logic here String name; String line; System.out.println("Input file name"); Scanner inp=new Scanne

我编写了以下代码,用于在Java中读取txt:

public static void main(String[] args) throws FileNotFoundException, IOException {
    // TODO code application logic here
    String name;
    String line;
    System.out.println("Input file name");
    Scanner inp=new Scanner(System.in);
    name=inp.nextLine();  
    FileReader file=new FileReader(name);
    BufferedReader br=new BufferedReader(new FileReader(name));
    while((line=br.readLine())!=null){
        System.out.println(br.readLine());
    }
    br.close();
}
我有一个txt文件,它位于我的java代码的同一文件夹下,它的名称是data.txt(它包含一行接一行的数字列表),我遇到的问题是,当我运行此程序时,我收到以下消息:

Exception in thread "main" java.io.FileNotFoundException: data.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:97)
线程“main”java.io.FileNotFoundException:data.txt中的异常(系统找不到指定的文件) 在java.io.FileInputStream.open(本机方法) 位于java.io.FileInputStream。(FileInputStream.java:138) 位于java.io.FileInputStream。(FileInputStream.java:97) 错在哪里?还有,如果文件不存在,如何用try-catch块将其包围


我已经放置了
System.out.println(新文件(名称).getAbsoluteFile)和它显示的所有路径通过data.txt,但我想在默认情况下指向我的当前文件夹;我是否应该使用
Scanner

如果您想使用相对文件名,并且您正在从netbeans或eclipse之类的IDE运行,那么您的文件结构应该如下所示

ProjectRoot
         file.txt
         src
         build

file.txt
是您正在使用的相对路径。如果文件路径中没有指定其他目录,IDE将首先在项目根目录中搜索该文件。

如果要使用相对文件名,并且要从netbeans或eclipse之类的IDE运行,则文件结构应该如下所示

ProjectRoot
         file.txt
         src
         build

file.txt
是您正在使用的相对路径。如果文件路径中没有指定其他目录,IDE将首先在项目根目录中搜索该文件。

如果使用扫描仪,则需要使用该文件

    Scanner inp=new Scanner(System.in);
    name=inp.nextLine();  

    File file = new File(name);

    if(file.exists()) {
     try {
         FileReader file=new FileReader(name);
         BufferedReader br=new BufferedReader(new FileReader(name));
         while((line=br.readLine())!=null){
            System.out.println(br.readLine());
         }
         br.close();
      }
      catch(IOException e) {
        System.out.println(e.getMessage());
       }
    }

这应该会有帮助,希望如此:)

如果您使用的是扫描仪,您需要使用该文件

    Scanner inp=new Scanner(System.in);
    name=inp.nextLine();  

    File file = new File(name);

    if(file.exists()) {
     try {
         FileReader file=new FileReader(name);
         BufferedReader br=new BufferedReader(new FileReader(name));
         while((line=br.readLine())!=null){
            System.out.println(br.readLine());
         }
         br.close();
      }
      catch(IOException e) {
        System.out.println(e.getMessage());
       }
    }

这应该会有帮助,希望如此:)

您可能被相对路径弄糊涂了。请打印文件绝对路径。在name=inp.nextLine()之后;放置:System.out.println(新文件(名称));抱歉,忘记了方法调用:System.out.println((新文件(名称)).getAbsoluteFile());Fedy2你说得对,它会向我打印文件“\users\…\NetBeans\…”的完整路径,如何指向默认情况下是我的文件所在的文件夹?有四种解决方法:1。从包含文件的文件夹中运行java程序;2.ask as首先将绝对文件夹输入到数据文件中,然后将其前置到每个文件名中;3.向用户询问绝对路径;4.将“数据文件”文件夹移动到程序位置。我选择1或2。你可能被相对路径弄糊涂了。打印文件绝对路径。在name=inp.nextLine()之后;放置:System.out.println(新文件(名称));抱歉,忘记了方法调用:System.out.println((新文件(名称)).getAbsoluteFile());Fedy2你说得对,它会向我打印文件“\users\…\NetBeans\…”的完整路径,如何指向默认情况下是我的文件所在的文件夹?有四种解决方法:1。从包含文件的文件夹中运行java程序;2.ask as首先将绝对文件夹输入到数据文件中,然后将其前置到每个文件名中;3.向用户询问绝对路径;4.将“数据文件”文件夹移动到程序位置。我会选择1或2。