我有一个名为" result.csv"的文件,我希望从该文件读取某些数据并显示它们。我在我的eclipse项目文件夹中有这个文件。我仍然无法阅读该文件。
public static void main(String [] args) {
int i=0;
String filename="result.csv";
Path pathToFile = Paths.get(filename);
try (BufferedReader br = Files.newBufferedReader(pathToFile, StandardCharsets.US_ASCII)) {
// read the first line from the text file
String line = br.readLine();
// loop until all lines are read
while (i<10) {
// use string.split to load a string array with the values from
// each line of
// the file, using a comma as the delimiter
String[] attributes = line.split(",");
double x=Double.parseDouble(attributes[8]);
double y=Double.parseDouble(attributes[9]);
System.out.println(GeoHash.withCharacterPrecision(x, y, 10));
// read next line before looping
// if end of file reached, line would be null
line = br.readLine();
i++;
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
输出:
java.nio.file.NoSuchFileException: result.csv
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
at java.nio.file.Files.newByteChannel(Unknown Source)
at java.nio.file.Files.newByteChannel(Unknown Source)
at java.nio.file.spi.FileSystemProvider.newInputStream(Unknown Source)
at java.nio.file.Files.newInputStream(Unknown Source)
at java.nio.file.Files.newBufferedReader(Unknown Source)
at com.uvce.cse.searchiot.geohash.TestGeoHash.main(TestGeoHash.java:19)
任何人都可以指出我错过的地方吗?我该如何克服这种或任何替代方法?
答案 0 :(得分:5)
问题是应用程序启动时的默认目录不是您认为的那样。在创建路径之后,尝试将以下行添加到代码中:
public static void main(String [] args) {
int i=0;
String filename="result.csv";
Path pathToFile = Paths.get(filename);
System.out.println(pathToFile.getAbsolutePath());
这样,您就会看到它正在寻找文件的确切位置。
如何解决这个问题是你的决定。您可以使用完整路径规范而不仅仅是文件名,或将文件名放在特殊的“Resources”目录中,并使用相对路径引用它,或将文件移动到默认目录所在的位置。
答案 1 :(得分:2)
如果您的file("result.csv")
位于src目录中,则应使用“ src / result.csv” 而不是“ result.csv” 。
答案 2 :(得分:0)
问题在于java无法找到&#34; result.csv&#34;文件在项目文件夹中。因此,尝试使用文件的完全限定路径,例如Path变量中的C:\your_folder\project\result.csv
。另外我认为最好像这样使用bufferedreader:BufferedReader br = new BufferedReader(new FileReader(insert here the String in which is defined the path to the file));
检查BufferedReader的使用情况here
答案 3 :(得分:0)
如果您是MacOSX用户,请手动输入文件路径,而不是从“获取信息”中复制文件路径。 如果您是从“获取信息”中复制的,则会得到以下内容: / Users / username <200e> <2068> <2068> / Desktop <2069> /source.txt