Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java方法可以';我不能拿起文件_Java_File Io_Java.util.scanner - Fatal编程技术网

Java方法可以';我不能拿起文件

Java方法可以';我不能拿起文件,java,file-io,java.util.scanner,Java,File Io,Java.util.scanner,我正在编写一个Java程序,它有一个文件拖放GUI。在DnD GUI中拖动的所有文件都被放入保存文件名的字符串数组中。我有一个方法,它在数组中循环并剥离路径,只留下文件名,然后在每个循环结束时将文件名(对于扫描仪)和所需的输出文件名(对于PrintWriter)发送到此方法: public void fileGenerator(String in, String out) { try { String current_directory = System.ge

我正在编写一个Java程序,它有一个文件拖放GUI。在DnD GUI中拖动的所有文件都被放入保存文件名的字符串数组中。我有一个方法,它在数组中循环并剥离路径,只留下文件名,然后在每个循环结束时将文件名(对于扫描仪)和所需的输出文件名(对于PrintWriter)发送到此方法:

public void fileGenerator(String in, String out) {          
    try {
    String current_directory = System.getProperty("user.dir");
    Scanner input = new Scanner(new FileReader(current_directory+"/"+in));
    PrintWriter output = new PrintWriter(current_directory+"/"+out);
        while(input.hasNext()) {
            String line = input.nextLine();
            output.println(line);
        } output.close(); 
    input.close();
    } catch (FileNotFoundException e) {
        System.out.println(e.getMessage());
    }
}
代码不工作,它不生成输出文件。我得到一个“没有这样的文件或目录”的完整路径错误。。。我已经在终端测试过了,这是正确的路径。欢迎您的任何意见

我应该注意,所有Java源文件、类和输入文件都在同一个目录中


谢谢

我看到的第一个问题是忽略了异常,因此不知道它是否成功打开了输入文件。不要忽略异常,即使您不知道如何处理它们,也要打印它们,以便以后可以分析您的问题

第二,调试代码,看看从哪里得到异常,如果有的话,看看每一步的值是什么


第三,为了回答您的问题,假设您使用Eclipse,如果您引用具有相对路径的文件,那么工作目录不是源/类文件夹,而是项目文件夹

我刚刚编辑了这个问题——没有发生我应该注意到的错误。我不使用Eclipse,我使用Geany/Gedit,所以它非常简单。。。所有文件都在一个位置,调用此生成器的方法会完全删除路径,只留下文件名。谢谢你的评论。。。你还有什么想法吗?看看这个问题:而且,通过一个空的catch块,你可能会错过方法中抛出的任何错误。即使文件在同一个目录中,我还必须告诉方法当前目录的位置吗?非常感谢您的输入。欢迎:)如果您不提供绝对路径(例如,在Unix中以
/
开头,或在windows中以`C:\`开头),则路径相对于当前工作目录,而不是源文件所在的目录,而是应用程序运行的目录。我在第一条注释中链接的方法显示了如何获取当前目录。