使用JAVA读取文件夹中的多个文件

使用JAVA读取文件夹中的多个文件,java,arrays,string,file,filereader,Java,Arrays,String,File,Filereader,我试图将位于文件夹(eclipse包src/myFolder内)中的文本文档读入字符串[]。我怎样才能做到这一点?我应该使用bufferedReader还是扫描仪?文档中的每个单词都必须标记为一个文档ID。例如:如果第一个文档有一句话“Spring在这里”,而第二个文本文档有一句话“Let's have fun”。输出将类似于 Spring 1 is 1 here 1 Let's 2 have 2 fun 2 我主要关心的

我试图将位于文件夹(eclipse包src/myFolder内)中的文本文档读入字符串[]。我怎样才能做到这一点?我应该使用bufferedReader还是扫描仪?文档中的每个单词都必须标记为一个文档ID。例如:如果第一个文档有一句话“Spring在这里”,而第二个文本文档有一句话“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());
      }
    ....
publicstaticvoidmain(字符串[]args){
String[]docs={“Spring在这里”};
文件[]listOfMyFiles=null;
字符串[]myDocs;
文件夹=新文件(“src/Lab1_数据”);
listOfMyFiles=文件夹.listFiles();
myDocs=新字符串[listOfMyFiles.length];

对于(int i=0;i我不知道您是否在复制代码时出错,但是您声明了一个名为
listOfFiles
的文件数组,但后来您尝试分配给一个名为
listOfMyFiles
的变量。我不明白的是为什么JAVA没有告诉您使用了未声明的变量


顺便问一下,您可以复制整个异常堆栈或引发异常的行吗?

文件[]listOfFiles=null;
更改为
文件[]listOfFiles=null;
似乎可以解决此问题


如果所引用的目录不存在,您可能会得到一个
NullPointerException

您的代码应该是这样的:

public File getFolder(String folderName) throws URISyntaxException {
       URL url = this.getClass().getResource("/Lab1_Data");
       File file = new File(url.toURI());
       return file;
}

您正在获取NullPointerException,因为代码未找到文件夹位置,因此您的文件对象具有null值。

文件类在操作系统的路径上运行。调用

new File( "src/myFolder") 
构造相对于当前工作目录的逻辑路径对象。这取决于程序的启动位置。它与类路径无关

如果要访问类路径中的文件,必须使用Classloader.getSystemResource方法:

        URL url = ClassLoader.getSystemResource( "src/Lab1_Data");
        File ch = new File(url.toURI());
        File[] files = ch.listFiles();
假设“src”是包路径的根元素。之后,您可以迭代文件:

        for ( File file : files )
        {
            // do something with the file
        }

使用
URL URL=this.getClass().getResource(“/Lab1_Data”);File File=new File(uri.toURI());
进行了更改,对此表示抱歉