我已经编写了以下代码来读取Java中的txt:
public static void main(String[] args) throws FileNotFoundException, IOException {
// TODO code application logic here
String name;
String line;
System.out.println("Input file name");
Scanner inp=new Scanner(System.in);
name=inp.nextLine();
FileReader file=new FileReader(name);
BufferedReader br=new BufferedReader(new FileReader(name));
while((line=br.readLine())!=null){
System.out.println(br.readLine());
}
br.close();
}
我有一个txt文件,它位于我的java代码的同一个文件夹下,它的名字是data.txt(它包含一行数字列表),我得到的问题是,当我运行这个时,我得到了以下消息:
Exception in thread "main" java.io.FileNotFoundException: data.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:97)
哪里出错?如果文件不存在,我还可以用try catch块包围它?
我已经放了System.out.println(new File(name).getAbsoluteFile);
并且它通过data.txt显示所有路径,但我想默认指向我当前的文件夹;我应该使用Scanner
吗?
答案 0 :(得分:4)
如果你想使用相对文件名并且你从像netbeans或eclipse这样的IDE运行,你的文件结构应该看起来像这样
ProjectRoot
file.txt
src
build
file.txt
是你正在使用的相对路径。如果文件路径中未指定其他目录,IDE将首先在项目根目录中搜索该文件。
答案 1 :(得分:0)
如果您使用的是扫描仪,则需要使用文件
Scanner inp=new Scanner(System.in);
name=inp.nextLine();
File file = new File(name);
if(file.exists()) {
try {
FileReader file=new FileReader(name);
BufferedReader br=new BufferedReader(new FileReader(name));
while((line=br.readLine())!=null){
System.out.println(br.readLine());
}
br.close();
}
catch(IOException e) {
System.out.println(e.getMessage());
}
}
应该有所帮助,希望如此:)