使用JAVA读取文件夹中多个文件的数组
我试图将位于文件夹(eclipse包src/myFolder内)中的文本文档读入字符串[]。我怎样才能做到这一点?我应该使用bufferedReader还是扫描仪?文档中的每个单词都必须标记为一个文档ID。例如:如果第一个文档有一句话“Spring is here”,而第二个文本文档有一句话“Let's have fun”。输出结果如下
Spring 1
is 1
here 1
Let's 2
have 2
fun 2
我主要关心的是阅读多份文件。这是我尝试读取文件的过程
public static void main(String[] args){
String[] docs = {"Spring is here"};
File[] listOfMyFiles=null;
String[] myDocs;
File folder = new File("src/Lab1_Data");
listOfMyFiles = folder.listFiles();
myDocs = new String[listOfMyFiles.length];
for(int i=0;i<listOfMyFiles.length;i++) {
myDocs[i] = listOfMyFiles[i].getName();
System.out.println("File: " + listOfMyFiles[i].getName());
}
....
我得到了空指针异常,可能是什么错误,是路径吗
# 1 楼答案
你的代码应该是这样的:
您将获得NullPointerException,因为代码未找到文件夹位置,因此您的文件对象具有null值
# 2 楼答案
我不知道您是否在复制代码时出错,但您声明了一个名为
listOfFiles
的文件数组,但后来您尝试分配给名为listOfMyFiles
的变量。我不明白的是,为什么JAVA没有告诉您使用了未声明的变量顺便问一下,你能复制整个异常堆栈或引发异常的行吗
# 3 楼答案
将
File[] listOfFiles=null;
更改为File[] listOfMyFiles=null;
似乎可以解决这个问题如果你引用的目录不存在,你可能会得到一个
NullPointerException
# 4 楼答案
File类在操作系统的路径上运行。召唤
构造相对于当前工作目录的逻辑路径对象。这取决于你在哪里开始你的项目。它与类路径无关
如果你想访问类路径中的文件,你必须使用类加载器。getSystemResource方法:
假设“src”是包路径的根元素。之后,您可以对这些文件进行迭代: