Форматированный вывод в файл и консоль

242
17 ноября 2017, 06:26

Суть вопроса:
По идее нужно создать модуль, который будет в консоль и в файл записывать потоки вывода в форме <номер строки>: <содержание вывода>

В моем случае т.е.:

  • 0: Compute 1/2 ... ; result: 0
  • 1: Something goes wrong
  • 2: Done computing

Я вроде бы концептуально примерно понимаю, что нужно сделать, но с реализацией встрял.

public class Main{
    public static void main(String[] args) throws Exception {
        System.out.print("Compute 1/2 ...");
        System.out.println(" ; result: " + (1 / 2));
        try {
            int a = 27 / 0;
        } catch (ArithmeticException err) {
            System.out.println("Something goes wrong");
        }
        System.out.println("Done computing");
        String directory = "D://Checknewfiles";
        String fileNameForLog = "log.txt";
        File file = new File(directory, fileNameForLog);
        file.createNewFile();
        System.setOut(new Logic(System.out));    
    }
}
class Logic extends PrintStream {
     public Logic(OutputStream out) {            //доделать
         super(out);                          
     }
     public void print(String s) {
         int count = 0;
         for (int i = 0; i < count; ++i) {
             count++;
             print(count +": " + s);
         }
     }
 }
Answer 1

Предположу, что переменную count нужно объявить как поле класса, чтобы между вызывами метода print его значение сохранялось.

class Logic extends PrintStream {
    private PrintStream wrapper;
    private int count;
    public Logic(OutputStream out) {
        super(out);
        this.wrapper = new PrintStream(out);
    }
    @Override
    public void print(String s) {
        count++;
        wrapper.print(count + ": " + s);
    }
}
READ ALSO
Как передать List на jsp(Spring)

Как передать List на jsp(Spring)

Доброго времени сутокЯ новичёк в Spring

243
LocalDateTime - преобразование в секунды

LocalDateTime - преобразование в секунды

Как преобразовать объект класса LocalDateTime в секунды, и так чтобы поместилось в какой-то тип данных?

302
Перемещение курсора мыши по диагонали

Перемещение курсора мыши по диагонали

Подскажите пожалуйстаЕсть две точки экрана с целочисленными координатами, мне нужно построить диагональ между ними и по целочисленным координатам...

257
Печать на принтер xls файлов из java под linux&#39;ом

Печать на принтер xls файлов из java под linux'ом

Не получается реализовать метод печати файлов екселя из java приложения, пробовал двумя способами: 1

289