Как преобразовать данные консоли в текстовый файл в Java

Я пытаюсь экспортировать вывод консоли в текстовый файл. Этот вывод также поступает из последовательного порта. Но я не мог этого сделать, он печатает только одну строку. Может кто-нибудь помочь мне? Код, который я написал, приведен ниже.

 String input = new String(buffer, 0, len); // convert buffer to string
        myLinkedList = removeComma(input); //format string data 
        String[] array = myLinkedList.toArray(new String[myLinkedList.size()]); // put array the formatted data


        PrintStream fileOut = new PrintStream(new FileOutputStream("C:\\Users\\khas\\Desktop\\output.txt"));
        System.setOut(fileOut);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");

        }
        System.out.println("");

person Beste Iskemleci    schedule 03.10.2018    source источник
comment
Я бы порекомендовал вместо этого заглянуть в FileWriter   -  person Stultuske    schedule 03.10.2018
comment
он печатает в одну строку, но печатает все, что вам нужно?   -  person vmrvictor    schedule 03.10.2018
comment
вы вызываете этот метод более одного раза? и показывается только последняя информация?   -  person vmrvictor    schedule 03.10.2018
comment
@Stultuske вместо PrintStream?   -  person Beste Iskemleci    schedule 03.10.2018
comment
Когда дело доходит до записи (в) файл, я бы, да   -  person Stultuske    schedule 03.10.2018
comment
@vmrvictor Я хочу напечатать все строки на консоли   -  person Beste Iskemleci    schedule 03.10.2018
comment
поэтому удали строку system.setout(fileout) и попадешь в консоль, а не в файл   -  person vmrvictor    schedule 03.10.2018
comment
Возможный дубликат Java: как отразить вывод консоли в файл   -  person vmrvictor    schedule 03.10.2018


Ответы (2)


печатает только одну строку

потому что вы используете System.out.print(array[i] + " ");,

вы можете изменить его на System.out.println(array[i] + " ");

person xingbin    schedule 03.10.2018
comment
о нет, это для данных. Потому что данные приходят в виде массива. После цикла я также пишу System.out.println(); перейти на следующую строку. - person Beste Iskemleci; 03.10.2018
comment
@BesteIskemleci Вы сказали I couldn't do it. Какова точная проблема? - person xingbin; 03.10.2018
comment
он печатает только одну строку. Я хочу, чтобы все строки были на консоли. - person Beste Iskemleci; 03.10.2018
comment
@Beste Iskemleci Вы хотите записать их в файл, а также распечатать их на консоли. проблема в том, что они были помещены в файл, но не появились в консоли. Я прав? - person xingbin; 03.10.2018

Вам нужен поток для одновременной записи в консоль и в файл, вы можете создать этот поток, используя TeeOutputStream часть commons-io дает в качестве параметра поток в консоль и поток в файл

PrintStream original = System.out; //the stream of the console
FileOutputStream fileOut = new 
FileOutputStream("C:\\Users\\khas\\Desktop\\output.txt"); //the stream of your file


OutputStream outputtee = new TeeOutputStream(originalOut, fileOut); //join both streams
PrintStream printTee = new PrintStream(outputTee);
System.setOut(printTee); // and set as the default out
person vmrvictor    schedule 03.10.2018