这是我现在使用的路径:
C:\Users\Sabrina\Documents\NetBeansProjects\TriangleSumRecursion\lab4Data.txt
我尝试使用以下内容:
C:\TriangleSumRecursion\lab4Data.txt
和
TriangleSumRecursion\lab4Data.txt
如果我使用这两个中的任何一个,Java会说"(系统找不到指定的文件)" ...
TriangleSumRecursion
是我转发的java包。
答案 0 :(得分:0)
您可以将特定文件导入项目,然后尝试使用TriangleSumRecursion\lab4Data.txt
您可以通过右键单击IDE中的项目文件夹来导入文件,然后单击导入。按照说明操作,并在其中提供文件的路径。
我希望它适合你。
答案 1 :(得分:0)
首先,在Javacode中使用斜杠(' /')而不是反斜杠(' \')。 但除此之外,Java可以处理绝对路径和相对路径。
我尝试使用以下内容:C:\ TriangleSumRecursion \ lab4Data.txt
这不是正确的绝对路径,如果没有文件夹' TriangleSumRecursion'在C:\。您的工作路径示例是唯一正确的。
和TriangleSumRecursion \ lab4Data.txt
在这里,您可以尝试将其作为相对路径。 Java在您运行代码的文件夹中开始搜索。如果您的java文件位于C:\ Users \ Sabrina \ Documents \ NetBeansProjects'中,那么这将起作用。 但是,由于我认为您的文件位于TriangleSumRecursion'中,因此您要查找的路径只是' lab4Data.txt'。
答案 2 :(得分:0)
您可以尝试以下方式逐行读取文件,首先通过文件阅读器读取文件,然后将其提供给缓冲的阅读器。然后你可以创建一个字符串缓冲区,当程序读取文件的每一行时,它会将它附加到字符串缓冲区。要检查它是否成功,只需关闭文件阅读器并使用toString()方法显示文件的内容。
`public static void main(String[] args) {
try {
File file = new File("lab4Data.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
stringBuffer.append("\n");
}
fileReader.close();
System.out.println("File is:");
System.out.println(stringBuffer.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}`
答案 3 :(得分:0)
C:\TriangleSumRecursion\lab4Data.txt
是绝对路径,因此无法识别不在此位置的文件。
您可能只是在目录C:\Users\Sabrina\Documents\NetBeansProjects\TriangleSumRecursion
中,因此很简单:
Paths.get("lab4Data.txt")
将为您的文件提供Path
(这是2015;使用java.nio.file并删除File
)。
但这是Windows,Windows有一些奇怪的东西......另一种访问文件的方法是:
Paths.get("c:lab4data.txt")
哪条路径有根(c:
)但不是绝对路径(因为这样的路径不能用于唯一标识FileSystem
上的资源
请参阅Files
课程,了解如何从此文件中打开InputStream
或BufferedReader
。请注意,如果文件不存在,匹配方法将抛出NoSuchFileException
。
最后但并非最不重要的是,使用try-with-resources语句:
try (
final BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8);
) {
// use the reader here
}