gpt4 book ai didi

java.io.FileNotFoundException,系统找不到指定的路径(csv文件)java

转载 作者:行者123 更新时间:2023-11-29 05:06:18 24 4
gpt4 key购买 nike

一切似乎都井井有条,但不知何故并非如此。这是代码;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;

String csvFilename = "src/example.csv";
CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
String[] row = null;
String total = "";
while((row = csvReader.readNext()) != null) {

for( int i = 0 ; i < 200 ; i++ ){ // no higher than num of columns to be found or error

String saveAway = row[i];
//tabl[saveInThisRow][i] = row[i];
tabl[saveInThisRow][i] = saveAway.replace('_', ' ');

}
saveInThisRow++;
if(saveInThisRow == 50) { saveInThisRow = 0; break; }

}
//saveInThisRow = 0;
// ctrl-i = auto format

csvReader.close();

据我所知路径是正确的(它在 src 中),也许 csv 有问题?它在 Eclipse 中运行良好,但现在在 Intellij 中它坏了……这是怎么回事?

这是堆栈跟踪;

java.io.FileNotFoundException: src\example.csv (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at net.klingt.example.LoadCsv.readCsv(LoadCsv.java:61)
at net.klingt.example.ProcessingExample.draw(ProcessingExample.java:252)
at processing.core.PApplet.handleDraw(PApplet.java:2386)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)
at processing.core.PApplet.run(PApplet.java:2256)
at java.lang.Thread.run(Thread.java:745)

现在我有了这个;

 public void readCsv(   ) throws IOException, URISyntaxException { // throws IOException  ---  String[] args
System.out.println(".............");
System.out.println(System.getProperty("user.dir"));

val = 20; // testing purposes
String [][] tab = new String [100][400];
int saveInThisRow = 0;

File file = new File(getClass().getResource("src/resources/GEMSTONES05.csv").toURI());
String csvFilename = "src/resources/GEMSTONES05.csv";

CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
String[] row = null;
String total = "";
while((row = csvReader.readNext()) != null) {

for( int i = 0 ; i < 20 ; i++ ){ // no higher than num of columns to be found or error
String saveAway = row[i];
parent.println("CVS read " + saveAway);
//tabl[saveInThisRow][i] = row[i];
tabl[saveInThisRow][i] = saveAway.replace('_', ' ');
}
saveInThisRow++;
if(saveInThisRow == 20) { saveInThisRow = 0; break; }

}

csvReader.close();

for( int i = 0 ; i < 300 ; i++){

}

}

我有点不知道如何以及在哪里使用"file",这是堆栈跟踪

C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.0.3\jre\jre\bin
Exception in thread "Animation Thread" java.lang.NullPointerException
at net.klingt.example.LoadCsv.readCsv(LoadCsv.java:41)
at net.klingt.example.ProcessingExample.draw(ProcessingExample.java:253)
at processing.core.PApplet.handleDraw(PApplet.java:2386)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)
at processing.core.PApplet.run(PApplet.java:2256)
at java.lang.Thread.run(Thread.java:745)

我不再有文件未找到错误,而是现在它是一个空指针异常....

最佳答案

试试这个

File file = new File(getClass().getResource("/example.csv").toURI());

它从您项目的 src 文件夹中获取文件

并确保 example.csv 存在于 src 文件夹中。

将您的 readCSV() 方法更改为以下内容..

public void readCsv(   ) throws IOException, URISyntaxException { // throws IOException  ---  String[] args
System.out.println(".............");
System.out.println(System.getProperty("user.dir"));

val = 20; // testing purposes
String [][] tab = new String [100][400];
int saveInThisRow = 0;

File file = new File(getClass().getResource("/resources/GEMSTONES05.csv").toURI());
//String csvFilename = "/resources/GEMSTONES05.csv";

CSVReader csvReader = new CSVReader(new FileReader(file));
String[] row = null;
String total = "";
while((row = csvReader.readNext()) != null) {

for( int i = 0 ; i < 20 ; i++ ){ // no higher than num of columns to be found or error
String saveAway = row[i];
parent.println("CVS read " + saveAway);
//tabl[saveInThisRow][i] = row[i];
tabl[saveInThisRow][i] = saveAway.replace('_', ' ');
}
saveInThisRow++;
if(saveInThisRow == 20) { saveInThisRow = 0; break; }

}

csvReader.close();

for( int i = 0 ; i < 300 ; i++){

}

}

获取资源时,不用写src文件夹名。因为在运行时,jvm会从src文件夹中获取资源,并寻找下一条路。

关于java.io.FileNotFoundException,系统找不到指定的路径(csv文件)java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30275143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com