Терминальный ввод дает нулевой указатель, но ввод IDE работает нормально - PullRequest
0 голосов
/ 23 марта 2020

Попытка создать программу, которая меняет материал в папке SR C. for (File f: files) {Возвращает нулевой указатель, несмотря на возвращение соответствующего ответа в Intellij IDE. Эта программа ищет в моем каталоге файлов SR C и перечисляет все файлы, относящиеся к каталогу. Он отлично работает в IDE, но не выполняет правильную функцию в командной строке.

//This program is from Liang Comprehensive Java 12.18

import java.io.*;
import java.util.ArrayList;

public class AddStatement {
  public static void main(String[] args) throws IOException {
   // File dir = new File(args[0]);
    File dir=new File("src");
    System.out.println(dir.getCanonicalPath() + " Was put into console");
    writeTofile(getfiles(dir));

  }//End of main class

 public static ArrayList<String> getfiles(File dirc) throws IOException {
    ArrayList<String> paths = new ArrayList<String>(5);
    File[] files = dirc.listFiles();

   for (File f : files) {         //This part is where null is happening                  
       paths.add(f.getCanonicalPath());

    }//End of foreach
    return paths;
 }//End of getFiles method


 public static void writeTofile(ArrayList<String> files) throws IOException {
    String file;
    int count = 1;
    for (String f : files) {
        file = f;
        try (PrintWriter writer = new PrintWriter(new FileWriter(file, true))) {
            if (file.contains("Chapter")) {
                writer.print("\\\\Chapter" + count);
                count++;
            }//End of filtering if
        }//End of try block

    }//End of for loop
    System.out.println("Files written");
 }//End writeTofile


}// End of Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...