Вывод Java PrintWriter выглядит странно в блокноте - PullRequest
2 голосов
/ 01 декабря 2011

Когда я смотрю на файл с помощью коврика для мыши в Linux, он выглядит правильно. Когда я смотрю на файл в Windows XP или Windows 7 с помощью блокнота, все выводится на одной строке и является неправильным.

Вот (правильный) вывод для out.txt, который я получаю в Linux:

  3.40        4.50        5.60
  3.40        4.50        5.60
  3.40        4.50        5.60 

РЕДАКТИРОВАТЬ: я закодировал текст с CR + LF, и он выглядит правильно, но как мне получить экспорт Java таким образом?

Вот код, только для тестирования.

import java.io.*;
import java.util.*;
public class untitled {

    public static void main (String args[]) throws FileNotFoundException {      

        PrintWriter output = new PrintWriter("out.txt");

        double number1 = 3.4;
        double number2 = 4.5;
        double number3 = 5.6;

        for (int x=0; x<3; x++) {
        output.printf("%6.2f",number1);
        output.printf("%12.2f",number2);
        output.printf("%12.2f",number3);
        output.println("");
        }

        output.close();
    }
}

Спасибо!

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Если вы делаете printf ("% n");Java напечатает соответствующий разделитель строк для вашей платформы.

2 голосов
/ 01 декабря 2011

Причина, по которой это выглядит "странно", заключается в том, что соглашение / стандарт Windows для разделения строк - это возврат каретки, перевод строки ("\r\n"), а не * nix-способ простого перевода строки ("\n").Поэтому, если вы используете базовый редактор, такой как блокнот, все будет казаться одинаковым.Лучшие редакторы, такие как Notepad ++ или даже wordpad, будут правильно отображать текстовый файл, даже если он имеет формат * nix.

Если вы запускаете свою программу Java в Windows, разделители строк будут установлены соответствующим образом, однако вы можететакже явно измените разделитель строк, чтобы он всегда был "\r\n" с помощью System.setProperty () с клавишей "line.separator".

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