Java 检查字符串中是否存在文件
这是我在尝试读取*.txt文件中的某些特定文本时使用的代码:Java 检查字符串中是否存在文件,java,Java,这是我在尝试读取*.txt文件中的某些特定文本时使用的代码: public void readFromFile(String filename, JTable table) { BufferedReader bufferedReader = null; try { bufferedReader = new BufferedReader(new FileReader(filename)); String a,b,c
public void readFromFile(String filename, JTable table) {
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(filename));
String a,b,c,d;
for(int i=0; i<3; i++)
{
a = bufferedReader.readLine();
b = bufferedReader.readLine();
c = bufferedReader.readLine();
d = bufferedReader.readLine();
table.setValueAt(a, i, 0);
table.setValueAt(b, i, 1);
table.setValueAt(c, i, 2);
table.setValueAt(d, i, 3);
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
//Close the reader
try {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
问题如下:第一次打开程序时,我要读取的*.txt文件不存在,因此我认为可以使用函数exists()
。我不知道该怎么办,但我试过:
if(("C:/data/datafile.txt").exists()) {
readFromFile("C:/data/datafile.txt", table1)
}
它不起作用,因为NetBeans给了我很多错误。如何修复此问题?
String
没有名为exists()
的方法(即使它这样做了,也不会满足您的要求),这将是IDE报告错误的原因
创建的实例并调用文件
实例:
if (new File("C:/data/datafile.txt").exists())
{
}
您可以使用此代码检查文件是否存在 使用java.io.File
File f = new File(filePathString);
if(f.exists()) { /* do something */ }
注意:这个答案使用的类在低于Java7的版本上是不可用的 对象字符串的方法
exists()
不存在。有关更多信息,请参阅。如果要根据路径检查文件是否存在,应使用path
和Files
来验证文件是否存在
Path file = Paths.get("C:/data/datafile.txt");
if(Files.exists(file)){
//your code here
}
关于路径类的一些教程:
还有一篇关于
对代码的建议:
我将向您介绍教程,因为它可能对您有用。我还想引起您的注意,因为它可以帮助您减少读取操作的代码。基于此方法,您可以使用for-each循环将文件的所有行添加到JTable
中,您需要为其指定一个实际的文件对象。您的思路是正确的,但是NetBeans(以及java)不知道什么是“(((C:/data/datafile.txt”)”
您可能想做的是使用该字符串作为参数创建一个java.io.File
对象,如下所示:
File file = new File ("C:/data/datafile.txt");
if (file.exists()) {
readFromFile("C:/data/datafile.txt", table1);
}
另外,您在readFromFile
调用的末尾缺少一个分号。我不确定这是否只是一个打字错误,但你也要检查一下
如果您知道您仅使用此文件
对象来检查是否存在,您还可以执行以下操作:
if (new File("C:/data/datafile.txt").exists()) {
readFromFile("C:/data/datafile.txt", table1);
}
如果要确保可以读取文件,甚至可以使用:
if(new File("C:/data/datafile.txt").canRead()){
...
}
作为一个条件,为了验证文件是否存在和,您有足够的权限读取该文件
Path file = Paths.get("C:/data/datafile.txt");
if(Files.exists(file)){
//your code here
}
在大约10秒钟内,我就找到了答案:)@AlbertoRossi如果对你有效,请接受答案,伙计。:)目前,您可以简单地从FileNotFoundException的异常处理程序返回。