引用java

时间:2017-05-23 13:42:52

标签: java java.util.scanner

所以我有以下代码将用户输入作为文件名的String输入,并将其输入Scanner对象。

        System.out.print("What is the name of the input file?");
        String name = scan.nextLine();
        Scanner file = new Scanner(new File(name));

放置文件以便可以访问的正确位置是什么。我是否必须将文件保存在与此项目相同的文件夹中,或者是否可以将它们放在不同的文件夹中,并且仍然可以引用它。如果有帮助,我正在使用mac。

2 个答案:

答案 0 :(得分:0)

  

我是否必须将该文件保存在与此项目相同的文件夹中   是否可以将它们放在不同的文件夹中,仍然可以   参考它。

您可以将其保留在计算机的任何位置(前提是您对要尝试访问的目录具有有效的读取权限)。

Scanner file = new Scanner(new File(name));

当您的文件位于当前目录中时,这将起作用,否则您必须提供完整的路径。

更新:如何提供完整路径:

import java.util.*;
import java.io.*;
public class TestFile
{
    public static void main(String str[]) throws Exception
    {
        try
        {
            System.out.print("What is the name of the input file?");
            Scanner scan = new Scanner(System.in);
            String name = scan.nextLine();
            File file = new File("/Users/jaine03/Desktop/"+name);
            System.out.println(file.exists());
        }catch(Exception ex)
        {
            ex.printStackTrace();
        }

    }
}

<强>输出

What is the name of the input file?
TestFile.java
true

答案 1 :(得分:0)

区分相对路径和绝对路径非常重要。

您可以将它放在CLASSPATH下,例如在“resources”目录中。

或者您可以使用绝对路径并引用每个可访问文件。

  • windows:new File("c:\\path\\file.dat")
  • linux / mac:new File("/path/file.dat")

但最好使用元描述或API,如java.nio.file.Paths,以获取有关当前工作目录的信息,这将使应用程序更具可移植性和强大性。

以下示例将应用程序当前目录路径作为String:

Paths.get(".").toAbsolutePath().normalize().toString();

另请参阅java.nio.file.Path中的API(例如https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html):

  • 路径相对化(路径其他)
  • 路径解析(路径其他)
  • 路径resolveSibling(路径其他)
  • 路径到AbsolutePath()
  • ...