Попытка создать программу, которая меняет материал в папке 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