简单java代码中的FileNotfound异常

简单java代码中的FileNotfound异常,java,Java,我使用这段代码使用filereader对象读取java中的文件。然而,应用程序抛出一个异常,说明它无法找到该文件。有人能帮助这个新手进行java编程吗 import java.util.*; import java.io.*; import java.util.Scanner; import java.io.FileReader; import java.io.PrintWriter; public class CFileReader { /** * @param arg

我使用这段代码使用filereader对象读取java中的文件。然而,应用程序抛出一个异常,说明它无法找到该文件。有人能帮助这个新手进行java编程吗

import java.util.*;
import java.io.*;
import java.util.Scanner;
import java.io.FileReader;
import java.io.PrintWriter;


public class CFileReader {

    /**
     * @param args
     */
    public static void main(String[] args)  throws FileNotFoundException
    {
        String objLine;
        String strInputFileName;
        FileReader objReader = null;
        Scanner objScanner;
        File objFile;

        if(args.length > 0)
        {
            for(int i = 0;i < args.length ;i++)
            {
                //Gets the arguments into the strInputFileName variable
                strInputFileName = args[i];

                System.out.println("Filename entered was : " + strInputFileName);

                //Create a file object which points to the filename i.e strInputFileName 
                objFile = new File(strInputFileName);

                //Create a FileReader object with the File object i.e objFile as the input parameter
                objReader = new FileReader(objFile);

                System.out.println("Filereader object is : " + objReader.toString());

                //Create a scanner object with FileReader as input parameter
                objScanner = new Scanner(objReader);

                System.out.println(args);


                //Scans the file if it has next line
                while(objScanner.hasNextLine())
                {
                    //Store the contents i.e. first line in the objLine Variable
                    objLine = objScanner.nextLine();


                    //prints the contents
                    if(objLine.indexOf(i) > 0)
                        {
                            System.out.println(objLine);
                        }
                }


            }

        }
        else
        {
            //Warn the user to enter the command line arguments if he has not entered
            System.out.println("Please Enter Command line args");
        }

    }

}

java CFileReader "C:\\Hello.txt"
其中,Hello.txt是一个包含一些内容的简单文本文件


提前多谢了

除了@Adel指出的args[0]错误,您也不必在命令行中转义“\”。。。“C:\Hello.txt”就足够了。

除了@Adel指出的args[0]错误外,您还不必在命令行中转义“\”。。。“C:\Hello.txt”就足够了。

我通常在我的文件对象和它的使用之间加上以下几行:

if (!objFile.isFile() || !objFile.exists()) {
  System.out.println("Could not find file: " + objFile.getPath().toString();
}

这通常会显示文件名的字符串格式有问题。

我通常在我的文件对象和它的使用之间加上以下几行:

if (!objFile.isFile() || !objFile.exists()) {
  System.out.println("Could not find file: " + objFile.getPath().toString();
}

这通常会显示文件名的字符串格式有问题。

如果代码在我的MacOS系统中工作,问题在于在Windows中写入文件路径的方式。就我而言:

java CFileReader /home/jenaiz/test.txt

这段代码在我的MacOS系统中工作,问题是你在Windows中写入文件路径的方式。就我而言:

java CFileReader /home/jenaiz/test.txt

您不需要
\\
。Java不解析输入字符串中的转义序列,单个反斜杠是Windows shell中的路径分隔符。

您不需要
\
。Java不解析输入字符串中的转义序列,单个反斜杠是Windows shell中的路径分隔符。

我自己在Windows上编译并测试了这段代码,效果很好。您要查找的文件不存在,或者在命令行中键入文件名时出错

我自己在Windows上编译并测试了这段代码,效果很好。您要查找的文件不存在,或者在命令行中键入文件名时出错

检查输入文件是否确实存在。当我在我的计算机上运行您的代码时,我没有在C:的根目录中创建文件的权限。您是如何创建测试文件的


当我将文件移动到另一个驱动器时,例如“t:\hello.txt”,它第一次工作。

检查输入文件是否确实存在。当我在我的计算机上运行您的代码时,我没有在C:的根目录中创建文件的权限。您是如何创建测试文件的



当我将文件移动到另一个驱动器时,例如“t:\hello.txt”,它第一次工作。

您可以打印堆栈跟踪(错误消息?)您的(根)
C:
目录中是否存在
hello.txt
?你真的需要那里的双人房吗?(对于后者不是100%确定)。需要检查的一件事是:尝试打印出
objFile.getAbsolutePath()
(在创建文件之后),看看它是否符合您的期望。我不确定这些\\'将如何在命令行中解析。Stacktrace……….线程“main”中的异常java.io.FileNotFoundException:Hello.txt(系统找不到指定的文件)在java.io.FileInputStream.open(本机方法)在java.io.FileInputStream。(未知源代码)在java.io.FileReader.(未知源代码)在CFileReader.main(CFileReader.java:35)看看你能打印stacktrace吗(错误消息?)在你的(根)
C:
目录中是否存在
Hello.txt
?你真的需要双\\那里吗?(后者不是100%确定)。需要检查的一件事是:在创建文件后立即打印
objFile.getAbsolutePath()
我不确定这些\\'将如何在命令行进行解析。Stacktrace…….线程“main”java.io.FileNotFoundException中的异常:Hello.txt(系统找不到指定的文件)位于java.io.FileInputStream.open(本机方法)位于java.io.FileInputStream(未知源代码)位于java.io.FileReader。(未知来源)在CFileReader.main(CFileReader.java:35)看奇怪我仍然无法运行这个x(你100%确定你尝试使用的文件存在吗?奇怪我仍然无法运行这个x(你100%确定你尝试使用的文件存在吗?我尝试在“D”上使用测试文件)驱动器..但程序仍然无法搜索n定位文件:(尝试将文件移动到源所在的同一目录。这样,您就知道您具有读/写权限,并且可以排除这种情况。我尝试在“D”驱动器上使用测试文件..但程序仍然无法搜索n定位文件:(请尝试将文件移动到源所在的同一目录。这样,您就知道您具有读/写权限,并且可以排除这种情况。我使用了此代码段,但应用程序在此阶段不会引发任何异常,但仅当我尝试使用filereader对象读取文件时,如果没有显示任何内容,则会出现实际的异常。)读取文件时出现问题-该文件有效但无法读取。如果必须猜测,我会说“权限”?因为据我所知,其余部分设置正确。我会检查以确保您尝试读取的文件具有打开权限。我从未使用过扫描仪对象,但是,它可能有限制,也可能没有了解它的用法。有没有关于Windows 7操作系统的特殊处理的想法?我使用了这个代码段,但应用程序在这个阶段没有抛出任何异常,但只有当我尝试使用filereader对象读取文件时,如果没有显示任何内容,那么读取文件时就会出现实际问题-文件是有效的,但无法读取。如果我不得不这样做的话我猜,我会说权限?因为据我所知,其余的设置是正确的。我会检查以确保您试图读取的文件具有打开权限。我从未使用过扫描仪对象,但是,它可能有限制,或者我可能不知道它的用法。有没有在Windows 7操作系统中进行特殊处理的想法??