Вывод текста в файл? - PullRequest
       2

Вывод текста в файл?

0 голосов
/ 04 сентября 2011

После запуска моей программы я получаю этот прекрасно отформатированный текст: enter image description here

Что мне нужно добавить к моему коду, чтобы этот текст выводился в файл .txt в точности как есть?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2011

Вы не уточнили, откуда берутся данные, но в любом случае вход или дб я бы поместил в многомерный массив.Тогда печатать будет легко.

PS Также, чтобы сохранить формат, я бы использовал значения, разделенные табуляцией "/ t"

открытый класс Parser {

private void parseData{

    int[][] array = new int[3][12];
     // print array in rectangular form
     for (int r=0; r<array.length; r++) {

         for (int c=0; c<array[r].length; c++) {

             System.out.print(array[r][c] + "\t");
         }
         System.out.println("");
     }

}

}

0 голосов
/ 04 сентября 2011

Если вы сейчас записываете свой вывод на экран, используя что-то вроде 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 чтобы использовать собственный метод вывода.Таким образом, когда вы хотите изменить способ обработки вывода (например, отправить его в несколько файлов, как на экран, так и в файл или что-то еще), у вас есть только одно место для изменения.Больше работы впереди, но в итоге вы получаете больше гибкости.

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