2012-03-14 16 views
6

मैं कुछ सीएसएस कक्षाओं को एक फ़ाइल में कॉपी कर रहा हूं। कक्षाओं को बहुत अच्छी तरह से कॉपी किया जाता है, लेकिन मुझे एक समस्या है कि जब मैं नोटपैड का उपयोग करके इसे खोलने की कोशिश कर रहा हूं तो यह \n चरित्र के बजाय एक वर्ग प्रदान करता है। यह संपादन + में अच्छी तरह से खुलता है। यहाँ मेरी कोड है:नोटपैड n चरित्र पहचान नहीं है?

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; 

    } 

कैसे यह नोटपैड में उचित ढंग से प्रदर्शित करने के लिए?

उत्तर

16

विंडोज नई लाइन के लिए \r\n का उपयोग करता है। बजाय line.separator संपत्ति का उपयोग करें:

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

धन्यवाद – dhananjay

4

उपयोग System.getProperty("line.separator");, हार्डकोडेड नहीं "\n" खिड़कियों पर लाइन विभाजक के रूप में "\r\n" है या, इस मामले में, का उपयोग BufferedWriter के newLine() विधि: आपकी मदद के लिए

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

यदि आप इस तरह के कोड पर विचार करते हैं तो यह उपयोगी नहीं है मुख्य = main.concat (part.trim()। Concat (";"))। Concat ("\ n"); – dhananjay

+0

उपयोग करें: 'main = main.concat (part.trim()। Concat ("; "))। Concat (System.getProperty (" line.separator "));'? – hmjd

+0

लाइन। सेपरेटर डबल कोट में गुजरना चाहिए ?? – dhananjay