2012-09-24 14 views
9

可能性の重複:
How to create a Java String from the contents of a fileJava:FileオブジェクトをJavaのStringオブジェクトに変換するにはどうすればよいですか?

私は情報を抽出するために使用するHTMLファイルを持っています。そのために私はJsoupを使用しています。 Jsoupを使用するために、htmlファイルを文字列に変換する必要があります。どうやってやるの?

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

ここで、htmlファイル内のコンテンツを含むStringオブジェクトが必要です。

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ん:Javaの7で

+3

チェックこの:http://stackoverflow.com/questions/326390/how-to-create-a-java-string-from-the-contents-of-a-file –

+0

により、ファイルの文字を読みます各文字をStringBufferに配置します。完了したら、StringBufferに文字列を問い合わせます。 –

+2

jsoup apiを確認してください。それはファイルを取る 'parse'メソッドを持っています。ファイル内容を手動で読む必要はありません。 –

答えて

23

。テキストファイルのエンコーディングを手間をかけずに設定することもできます。

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

あなたはどうしたらいいのですか?readStringToFile –

+2

writeStringToFile? – gigadot

+0

添付リンクが有効期限切れです。最新のURLを投稿してください。 –

8

が、それは同じくらい簡単です。

オフィシャルJavaチュートリアルのcorresponding sectionをご覧になることをお勧めします(以前のJavaをお持ちの場合も同様です)。

他の人が指摘しているように、Apacheの共有I/OやGuavaのようなsimeのサードパーティのライブラリが役立つかもしれません。

私は単一の文字列

String str = FileUtils.readFileToString(file); 

シンプルかつ「クリーン」にテキストファイルを読むためにapache common IOを使用

0

ファイルを1行ずつ読み込んでStringBufferに追加していないのはなぜですか?

ファイルの最後に達したら、StringBufferからStringを取得できます。次のようにあなたがStringmyhtmlのすべての内容をコピーすることができ

0

は、Jsoupは、ファイルを取る方法があります。彼らはonelinerメソッドを持っています。

グァバ:

Files.toString(file, charset); 

コモンズ/ IO:

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

使用ライブラリ:ところで

2

Readinファイル:

ようなライブラリがなければ
FileUtils.readFileToString(file, charset); 

、私はヘルパーメソッド、このような何かを書きたいですファイルinputstreamでファイル内容を文字列に追加します。

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(); 
      } 
     } 
    } 
} 
関連する問題