Я создаю программу для анализа текстового файла, я использую классы для этого с файлом запуска. Я пытаюсь получить результаты для печати в файл. Я создал файл с именем report.txt в той же папке, но ничего не печатает в файле. Я сделал это, используя полный путь к файлу, и он отлично работает, но я хочу сделать это только с именем файла, вместо этого он будет находиться в той же папке.Печать в файл с помощью PrintWriter в Java, не работающем с именем файла
Любая помощь будет высоко ценится, как получить результаты для печати в файл Report.txt
Мой код ниже:
Run Файл:
package cw;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.IOException;
public class TextAnalyser {
//Declaration of all Scanners to be used in other classes.
public static Scanner reader;
public static Scanner Linesc;
public static void main(String[] args) throws IOException {
//User enters a file to be scanned.
Scanner in = new Scanner(System.in);
System.out.println("Enter a filename");
String filename = in.nextLine();
File InputFile = new File(filename);
//Assign all scanners to scan users file.
Linesc = new Scanner(InputFile);
LineCounter Lineobject = new LineCounter();
Lineobject.TotalLines();
}
}
Class файл
package cw;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.IOException;
public class LineCounter {
public static void TotalLines() throws IOException {
Scanner sc = TextAnalyser.Linesc;
PrintWriter out = new PrintWriter(new FileWriter("Report.txt", true));
int linetotal = 0;
while (sc.hasNextLine()) {
sc.nextLine();
linetotal++;
}
out.println("The total number of lines in the file = " + linetotal);
out.flush();
out.close();
System.out.println("The total number of lines in the file = " + linetotal);
}
}