2012-09-24 24 views
9

संभव डुप्लिकेट:
How to create a Java String from the contents of a fileजावा: जावा ऑब्जेक्ट को जावा ऑब्जेक्ट में जावा में स्ट्रिंग ऑब्जेक्ट में कैसे परिवर्तित करें?

मैं एक html फ़ाइल जो मैं जानकारी निकालने के लिए उपयोग करना चाहते हैं। इसके लिए मैं जेएसओपी का उपयोग कर रहा हूं। अब Jsoup का उपयोग करने के लिए, मुझे HTML फ़ाइल को एक स्ट्रिंग में कनवर्ट करने की आवश्यकता है। मैं उसे कैसे कर सकता हूँ?

File myhtml = new File("D:\\path\\report.html")'; 

अब, मैं स्ट्रिंग ऑब्जेक्ट कि html फ़ाइल के अंदर सामग्री शामिल है चाहता हूँ।

final String EoL = System.getProperty("line.separator"); 
List<String> lines = Files.readAllLines(Paths.get(fileName), 
     Charset.defaultCharset()); 

StringBuilder sb = new StringBuilder(); 
for (String line : lines) { 
    sb.append(line).append(EoL); 
} 
final String content = sb.toString(); 

हालांकि, यह कुछ मामूली चेतावनियां havea करता है (फ़ाइलों को स्मृति में फ़िट नहीं होता निपटने की तरह):

+3

चेक करें: http://stackoverflow.com/questions/326390/how-to-create-a-java-string-from-the-contents-of-a-file –

+0

द्वारा फ़ाइल चरित्र पढ़ें चरित्र और प्रत्येक चरित्र को एक स्ट्रिंगबफर में डाल दें। जब स्ट्रिंग के लिए स्ट्रिंगबफर से पूछा जाता है। –

+2

jsoup api जांचें। इसमें 'पार्स' विधि है जो फ़ाइल लेती है। आपको फ़ाइल सामग्री को मैन्युअल रूप से पढ़ने की आवश्यकता नहीं है। –

उत्तर

23

मैं apache common IO का उपयोग एक एकल स्ट्रिंग

String str = FileUtils.readFileToString(file); 

सरल और "क्लीन" में एक पाठ फ़ाइल को पढ़ने के लिए। आप बिना किसी परेशानी के टेक्स्ट फ़ाइल के एन्कोडिंग भी सेट कर सकते हैं।

String str = FileUtils.readFileToString(file, "UTF-8"); 
+0

आप विपरीत कैसे करेंगे ... readStringToFile –

+2

writeStringToFile? – gigadot

+0

संलग्न लिंक की समय सीमा समाप्त हो गई है, क्या आप कृपया नवीनतम यूआरएल पोस्ट कर सकते हैं? –

8

जावा 7 के साथ, यह के रूप में सरल है।

मैं आधिकारिक जावा ट्यूटोरियल में corresponding section पर एक नज़र डालने का सुझाव दूंगा (यह भी मामला है यदि आपके पास पूर्व जावा है)।

जैसा कि अन्य ने इंगित किया है, आप शायद तीसरे पक्ष के पुस्तकालयों को उपयोगी पाएंगे (जैसे अपाचे कॉमन्स I/O या Guava)।

0

आप क्यों नहीं बस लाइन द्वारा फ़ाइल लाइन पढ़ सकते हैं और यह एक StringBuffer के लिए जोड़ नहीं है?

फ़ाइल के अंत तक पहुंचने के बाद आप स्ट्रिंगबफर से स्ट्रिंग प्राप्त कर सकते हैं।

0

आप इस प्रकार String को myhtml के सभी सामग्री की प्रतिलिपि कर सकते हैं:

Scanner myScanner = null; 
try 
{ 
    myScanner = new Scanner(myhtml); 
    String contents = myScanner.useDelimiter("\\Z").next(); 
} 
finally 
{ 
    if(myScanner != null) 
    { 
     myScanner.close(); 
    } 
} 

बेशक, आप अपवाद ठीक से संभाल करने के लिए एक catch ब्लॉक जोड़ सकते हैं। Guava या Commons/IO तरह http://jsoup.org/apidocs/org/jsoup/Jsoup.html#parse(java.io.File,%20java.lang.String)

0

वैसे, Jsoup विधि है कि फाइल ले जाता है। उनके पास ऑनलाइनर विधियां हैं।

अमरूद:

Files.toString(file, charset); 

कॉमन्स/आईओ:

public String readFile(File file, Charset charset) throws IOException { 
    return new String(Files.readAllBytes(file.toPath()), charset); 
} 
9

एक पुस्तकालय का उपयोग करें:

2

Readin फ़ाइल:

FileUtils.readFileToString(file, charset); 
इस तरह के एक लाइब्रेरी के बिना

, मैं एक सहायक विधि, कुछ इस तरह लिखते हैं फ़ाइल इनपुटस्ट्रीम के साथ और स्ट्रिंग के लिए फ़ाइल सामग्री संलग्न करें।

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 

public class CopyOffileInputStream { 

    public static void main(String[] args) { 

     //File file = new File("./store/robots.txt"); 
     File file = new File("swingloggingsscce.log"); 

     FileInputStream fis = null; 
     String str = ""; 

     try { 
      fis = new FileInputStream(file); 
      int content; 
      while ((content = fis.read()) != -1) { 
       // convert to char and display it 
       str += (char) content; 
      } 

      System.out.println("After reading file"); 
      System.out.println(str); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if (fis != null) 
        fis.close(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 
    } 
} 
संबंधित मुद्दे