Блокнот не распознает символ \ n? - PullRequest
6 голосов
/ 14 марта 2012

Я копирую некоторые классы CSS в один файл.Классы копируются очень хорошо, но у меня проблема в том, что когда я пытаюсь открыть его с помощью блокнота, он дает один квадрат вместо \n символа.Хорошо открывается в Edit +.Вот мой код:

String fileName = new File(oldFileName).getName();
BufferedWriter out = null;

FileWriter fw = new FileWriter("D:\\temp\\UPDATED_"+fileName);
out = new BufferedWriter(fw);

for (CSSStyleRule p : finlist.values()) {
    String t = null;
    String m = p.toString();
    if (m.charAt(0) == '*') {
        t = m.substring(1);
    } else {
        t = m;
    }

    String main = format(t);
    out.write(main);
    out.write("\n");
}

также смотрите эту функцию формата ()

private static String format(String input) {
        int s = input.indexOf('{');
        int p = input.indexOf('}');
        int w = input.indexOf(';');
        if(w==-1)
        {
            w=p-1;
            String []part=input.split("}");
        input=  part[0].concat(";").concat("}");
        }

        String m = input.substring(0, s).trim().concat("{\n")
                .concat(input.substring(s + 1, w + 1).trim())
                .concat(input.substring(w + 1, p));
        String a[] = m.split(";");
        String main = "";
        for (String part : a) {
            if (part.contains("rgb")) {
                part = convert(part);
            }
            if(part.contains("FONT-FAMILY") || part.contains("font-family")){
                part=process(part);
            }

            main = main.concat(part.trim().concat(";")).concat("\n");
        }
        main = main.concat("}");
        return main;

    }

Как правильно отобразить ее в блокноте?

Ответы [ 2 ]

16 голосов
/ 14 марта 2012

Windows использует \r\n для новой строки. Вместо этого используйте свойство line.separator:

public static String newLine = System.getProperty("line.separator");
//...
out.write(newLine);
4 голосов
/ 14 марта 2012

Используйте System.getProperty("line.separator");, не жестко запрограммированный "\n", так как разделитель строк на окнах равен "\r\n" или, в этом случае, используйте BufferedWriter newLine() метод:

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