2013-09-01 9 views
21

कृपया निम्नलिखित कोडपढ़ें और लिखें पाठ

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

/** 
* 
* @author 
*/ 
import java.io.*; 


public class CSVConverter 
{ 
    private File csvFile; 
    private BufferedReader reader; 
    private StringBuffer strBuffer; 
    private BufferedWriter writer; 
    int startNumber = 0; 
    private String strString[]; 

    public CSVConverter(String location, int startNumber) 
    { 
     csvFile = new File(location); 
     strBuffer = new StringBuffer(""); 
     this.startNumber = startNumber; 


     //Read 
     try 
     { 
     reader = new BufferedReader(new FileReader(csvFile)); 
     String line = ""; 

     while((line=reader.readLine())!=null) 
     { 
      String[] array = line.split(","); 

      String inputQuery = "insertQuery["+startNumber+"] = \"insert into WordList_Table ('Engl','Port','EnglishH','PortugueseH','Numbe','NumberOf','NumberOfTime','NumberOfTimesPor')values('"+array[0]+"','"+array[2]+"','"+array[1]+"','"+array[3]+"',0,0,0,0)\""; 

      strBuffer.append(inputQuery+";"+"\r\n"); 
      startNumber++; 

     } 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 

     System.out.println(strBuffer.toString()); 

     //Write 
     try 
     { 
      File file = new File("C:/Users/list.txt"); 
      FileWriter filewrite = new FileWriter(file); 

      if(!file.exists()) 
      { 
       file.createNewFile(); 
      } 


      writer = new BufferedWriter(filewrite); 


      writer.write(strBuffer.toString()); 
      writer.flush(); 
      writer.close(); 

     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 

    } 

    public static void main(String[]args) 
    { 
     new CSVConverter("C:/Users/list.csv",90); 
    } 
} 

मैं, एक csv फ़ाइल को पढ़ने के कोड में पाठ संपादित करने के कोशिश कर रहा हूँ पर एक नजर है, और इसे वापस एक .txt फ़ाइल लिखें। मेरी समस्या यह है कि मेरे पास पुर्तगाली शब्द हैं, इसलिए फ़ाइल को ANSI प्रारूप का उपयोग करके पढ़ना और लिखना चाहिए। अभी कुछ पुर्तगाली शब्द आउटपुट फ़ाइल में प्रतीकों के साथ प्रतिस्थापित किए गए हैं।

जावा में एएनएसआई प्रारूप में फ़ाइल में टेक्स्ट डेटा को मैं कैसे पढ़ और लिख सकता हूं?

+1

सूची farmacias = files.readAllLines (Paths.get ("c: \\ tmp \\ Farmacias.txt"), Charset.forName ("Cp1252")); –

+0

मैं इस बारे में सहमत नहीं हूं> विंडोज एएनएसआई के लिए सही जावा एन्कोडिंग सीपी 1252 एएनएसआई माइक्रोसॉफ्ट की चाल है, और इसे एन्कोडिंग में बदल दिया जा सकता है। विंडोज़ की सेटिंग के आधार पर यह जीबीके, शिफ्ट_जेआईएस और इसी तरह भी हो सकता है। – TKJohn

उत्तर

41

एक विशिष्ट एन्कोडिंग के साथ एक टेक्स्ट फ़ाइल पढ़ने के लिए आप का उपयोग InputStreamReader के साथ कर सकते हैं। विंडोज एएनएसआई के लिए सही जावा एन्कोडिंग Cp1252 है।

reader = new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "Cp1252")); 

एन्कोडिंग आप एक OutputStreamWriter के साथ मिलकर एक FileOutputStream उपयोग कर सकते हैं एक विशिष्ट चरित्र के साथ एक पाठ फ़ाइल लिखने के लिए।

writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "Cp1252")); 

कक्षाएं InputStreamReader और OutputStreamWriter एक विशिष्ट वर्ण एन्कोडिंग के साथ बाइट उन्मुख धाराओं और पाठ के बीच अनुवाद करते हैं।

+1

क्यों सीपी 1252 सूचीबद्ध नहीं है [यहां] (http://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html)? –

+3

शायद यह सूची अधिक जानकारीपूर्ण है: http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html – vanje

संबंधित मुद्दे