Если вы сейчас записываете свой вывод на экран, используя что-то вроде System.out.Println(...)
, сопоставимый способ записи текста в файл - это использование PrintStream.
Вы сможете найти много примеров.как это сделать, если вы ищете; вот один .
import java.io.*;
class PrintStreamDemo {
public static void main(String args[]){
FileOutputStream out;
PrintStream ps; // declare a print stream object
try {
// Create a new file output stream
out = new FileOutputStream("myfile.txt");
// Connect print stream to the output stream
ps = new PrintStream(out);
ps.println ("This data is written to a file:");
System.err.println ("Write successfully");
ps.close();
}
catch (Exception e){
System.err.println ("Error in writing to file");
}
}
}
пс.одно предупреждение: «красиво отформатированная» часть вашего текста, вероятно, зависит от вывода, отображаемого моноширинным шрифтом (все символы имеют одинаковую ширину);при просмотре немоноширинным шрифтом столбцы не будут выстраиваться в линию.Если вы сохраняете его в виде обычного файла .txt, вы не можете контролировать, какой шрифт будет использоваться другим пользователем для отображения этого файла при открытии.
Обновление:
Есть несколько подходов, которые вы можете использовать, если вы обнаружите, что у вас есть программа, полная вызовов System.out.println
, и вы хотите вместо этого перенаправить вывод в файл.
1) Быстрыйгрязным способом было бы открыть PrintStream в нужный файл вывода, а затем вызвать System.setOut()
, чтобы перенаправить System.out
на указанный PrintStream.
2) Возможно, более чистым способом было бы переписать все вызовы System.out.println
чтобы использовать собственный метод вывода.Таким образом, когда вы хотите изменить способ обработки вывода (например, отправить его в несколько файлов, как на экран, так и в файл или что-то еще), у вас есть только одно место для изменения.Больше работы впереди, но в итоге вы получаете больше гибкости.