【发布时间】:2015-03-31 00:51:17
【问题描述】:
我有一个名为 v1.csv 的 csv 文件,它位于项目主目录中。当我尝试阅读燃料时,java 似乎永远找不到它。我使用了 opencsv 和扫描仪解决方案,以便将文件读入二维数组,但两种方法都不起作用。我应该如何让 java 知道在哪里可以找到该文件?
扫描仪解决方案:
BufferedReader reader = new BufferedReader(new FileReader(
"v1.csv"));
Opencsv 解决方案:
CSVReader reader = new CSVReader(new FileReader("v1.csv"));
Opencsv 备用:
CSVReader reader = new CSVReader(new FileReader("/Users/yilun/Desktop/v1.csv"));
堆栈跟踪:
01-31 10:08:35.671: W/System.err(16946): java.io.FileNotFoundException: /Users/yilun/Downloads/mapquest-android-sdk/samples: open failed: ENOENT (No such file or directory)
01-31 10:08:35.671: W/System.err(16946): at libcore.io.IoBridge.open(IoBridge.java:409)
01-31 10:08:35.671: W/System.err(16946): at java.io.FileInputStream.<init>(FileInputStream.java:78)
01-31 10:08:35.671: W/System.err(16946): at java.io.FileInputStream.<init>(FileInputStream.java:105)
01-31 10:08:35.671: W/System.err(16946): at java.io.FileReader.<init>(FileReader.java:66)
01-31 10:08:35.671: W/System.err(16946): at com.mapquest.android.samples.MyLocationMap.onCreate(MyLocationMap.java:73)
01-31 10:08:35.681: W/System.err(16946): at android.app.Activity.performCreate(Activity.java:6084)
01-31 10:08:35.681: W/System.err(16946): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-31 10:08:35.681: W/System.err(16946): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
01-31 10:08:35.681: W/System.err(16946): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
01-31 10:08:35.681: W/System.err(16946): at android.app.ActivityThread.access$800(ActivityThread.java:144)
01-31 10:08:35.681: W/System.err(16946): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
01-31 10:08:35.681: W/System.err(16946): at android.os.Handler.dispatchMessage(Handler.java:102)
01-31 10:08:35.681: W/System.err(16946): at android.os.Looper.loop(Looper.java:136)
01-31 10:08:35.681: W/System.err(16946): at android.app.ActivityThread.main(ActivityThread.java:5158)
01-31 10:08:35.681: W/System.err(16946): at java.lang.reflect.Method.invokeNative(Native Method)
01-31 10:08:35.681: W/System.err(16946): at java.lang.reflect.Method.invoke(Method.java:515)
01-31 10:08:35.681: W/System.err(16946): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
01-31 10:08:35.681: W/System.err(16946): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
01-31 10:08:35.681: W/System.err(16946): at dalvik.system.NativeStart.main(Native Method)
01-31 10:08:35.681: W/System.err(16946): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
01-31 10:08:35.681: W/System.err(16946): at libcore.io.Posix.open(Native Method)
01-31 10:08:35.681: W/System.err(16946): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
01-31 10:08:35.681: W/System.err(16946): at libcore.io.IoBridge.open(IoBridge.java:393)
01-31 10:08:35.681: W/System.err(16946): ... 18 more
都不起作用。
【问题讨论】:
-
异常/错误信息是什么?
-
取决于你从哪里运行,尝试 System.out.println(new File("v1.csv").getAbsolutePath()) 打印出它正在寻找的完整路径
-
错误消息类似于
File or directory not found。这是一个 FileNotFoundException -
@Prashant 我的第三个示例不是绝对路径吗?
标签: java csv file-io bufferedreader opencsv