Я пишу простую программу в рамках изучения файлов и потоков в школьном курсе Java.
Мы должны открыть поток, создать файл и перенаправить стандартный вывод в этот поток, чтобы ошибки печатались в этом файле. Достаточно просто, и мне показалось, что я это понял.
Мы должны назвать файл «syntax_error_file.txt», но я пытался изолировать эту часть задания, поэтому создал новый проект и попытался сделать то же самое, но вместо этого назвал файл «somefile.txt». Бум, это сработало.
Я скопировал код в другой проект (в виде комментария), чтобы сравнить и посмотреть, где я ошибся в исходном коде, но он точно такой же. На всякий случай я даже вырезал исходный код и заменил его своим «новым». Бум, это работает. Я изменил имя на «syntax_error_file.txt», и он перестал работать.
Я попробовал удалить оба файла со своего жесткого диска, на тот случай, если мой компьютер читал что-то, чего я не видел. Я также попробовал использовать конструктор FileOutputStream со строкой и логическим значением, а также конструктор только со строкой, просто чтобы проверить, не вызывает ли проблема добавление текста в файл.
Примечание: я использую IDE – Eclipse
Код: Выделить всё
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Driver throws FileNotFoundException {
public static void main(String[] args) {
PrintStream ps = null;
try {
ps = new PrintStream (new FileOutputStream ("syntax_error_file.txt", true));
System.setErr(ps);
}
catch (FileNotFoundException fnfe) {
System.err.println("File was not found/File could not be created");
}
for (int i=0; i
Подробнее здесь: [url]https://stackoverflow.com/questions/79808467/java-system-seterr-works-for-redirecting-output-to-one-file-name-but-stops-wo[/url]
Мобильная версия