2012-03-10 6 views

答えて

1

ヨハン・シェーベルイの説明が良いです:

「それは練習を決定するであろう文字列を使用する方法です。」

文字列オブジェクトを構成する300,000文字が、二重引用符( "")で囲んだJavaソースファイルに存在しない場合。外部ファイルに存在する場合は、さまざまな手法を使用して、チャンクまたは全体としてStringコンテンツチャンクを取得できます。この例を見てみましょう:

FileInputStream fis = new FileInputStream("yourFile.txt"); 
BufferedInputStream bis = new BufferedInputStream(fis); 
byte [] buffer = new byte [ 8 ]; 
int bytesRead = 0; 
String chunk = ""; 

while ((bytesRead = bis.read(buffer)) != -1) 
    chunk = new String(buffer, 0, bytesRead); 

と仮定すると、あなたがサイズ8バイトの文字列を使用すると、whileループを入力するたびに取得する上では、コードで、可能性のある例外を処理します。したがって、このコードでは8のバイト配列サイズを変更することで、チャンクサイズを変更したり、他の場所でチャンクを使用したり、それらを印刷したりすることができます。

例では、文字列は約300000文字です。したがって、バイト配列bufferのサイズをに設定すると、4 x 300,000 = 1,200,000になります。すべての文字を含む単一の文字列チャンクを取得できます。

1

JavaはUTF-16エンコーディングを使用しているため、最悪の場合、各文字は4バイトです。それはあなたにおおよそ4*300000/1024/1024 ~ 1.14MB文字列を与えますが、それ自体はそれほど悪くありません。

これはあなたのやり方です練習を決定する文字列です。

関連する問題