Суть вопроса:
По идее нужно создать модуль, который будет в консоль и в файл записывать потоки вывода в форме <номер строки>: <содержание вывода>
В моем случае т.е.:
Я вроде бы концептуально примерно понимаю, что нужно сделать, но с реализацией встрял.
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);
}
}
}
Предположу, что переменную 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);
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости