【问题标题】:Reading multiple files in a folder using JAVA使用JAVA读取文件夹中的多个文件
【发布时间】:2016-03-26 20:41:11
【问题描述】:

我正在尝试将位于文件夹(在 Eclipse 包 src/myFolder 内)中的文本文档读入字符串 []。我怎样才能做到这一点?我应该使用 bufferedReader 还是 Scanner?文档中的每个单词都必须标记为文档 ID。例如:如果第一个文档有句子“春天来了”,第二个文本文档有句子“让我们玩得开心”。输出会像

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());
      }
    ....

我得到空指针异常,可能是什么错误,是路径吗?

【问题讨论】:

  • 使用URL url = this.getClass().getResource("/Lab1_Data"); File file = new File(uri.toURI());

标签: java arrays string file filereader


【解决方案1】:

你的代码应该是这样的:

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

您收到 NullPointerException 是因为代码未找到文件夹位置,因此您的文件对象具有空值。

【讨论】:

    【解决方案2】:

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

    顺便说一句,你能复制整个异常堆栈或引发的行吗?

    【讨论】:

    • 进行了更改,对此感到抱歉
    【解决方案3】:

    File[] listOfFiles=null; 更改为File[] listOfMyFiles=null; 似乎可以解决问题。

    如果您引用的目录不存在,您可能会收到 NullPointerException

    【讨论】:

      【解决方案4】:

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

      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
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-21
        • 1970-01-01
        • 2014-01-28
        相关资源
        最近更新 更多