2012-03-14 18 views
6

Kopiuję niektóre klasy css do jednego pliku. Klasy są kopiowane bardzo dobrze, ale mam problem z tym, że gdy próbuję otworzyć go przy pomocy notatnika, to pojawia się jeden kwadrat zamiast znaku \n. Otwiera się również w Edit +. Tu jest mój kodu:Notatnik nie rozpoznaje n postaci?

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"); 
} 

patrz także tego formatu funkcja()

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; 

    } 

Jak sprawić, by to pokazać się właściwie w notatniku?

Odpowiedz

16

System Windows używa \r\n dla nowej linii. Użyj właściwości line.separator Zamiast:

public static String newLine = System.getProperty("line.separator"); 
//... 
out.write(newLine); 
+0

dzięki za pomoc – dhananjay

4

Zastosowanie System.getProperty("line.separator");, nie sztywno "\n", jako separator linii na oknach jest "\r\n" lub, w tym przypadku należy użyć BufferedWriter „s newLine() metody:

out.write(main); 
out.newLine(); 
+0

jeśli uważasz, że kod taki jak ten nie jest użyteczny main = main.concat (part.trim(). Concat (";")). Concat ("\ n"); – dhananjay

+0

Użyj: 'main = main.concat (part.trim(). Concat ("; ")). Concat (System.getProperty (" line.separator "));'? – hmjd

+0

line.separator powinien przejść podwójną ofertę? – dhananjay

Powiązane problemy