行単位ではなく、一度にString型にBufferedReaderを配置する方法はありますか?ここで私はこれまで持っているものです。どのようにしてBufferedReaderのコンテンツをStringに配置しますか?
BufferedReader reader = null;
try
{
reader = read(filepath);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
String line = null;
String feed = null;
try
{
line = reader.readLine();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
while (line != null)
{
//System.out.println(line);
try
{
line = reader.readLine();
feed += line;
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(feed);
サイズが何であるか分かりません。実際にはどんなサイズでもかまいません。回答ありがとうございました。 – BigBug
これは実際には他のライブラリを使用しないと最適なソリューションです。 APIから: "基本ストリームの' first read'がファイルの終わりを示す-1を返した場合、このメソッドは '-1'を返します。そうでなければ、実際に読み取られた文字数を返します。使用方法は次のとおりです。http://pastebin.com/RvGwKLuC – bezmax
もう少し説明すると、BufferedReaderは他のリーダーを囲んでいます。 'read(char []、int、int)'を呼び出すと、それはそのバッファに基本リーダーの 'read():int'への順次呼び出しでいっぱいになります。内部バッファがいっぱいになると、内部バッファの一部が取得され、指定された配列に挿入されます。つまり、APIの中には、それらの読み込み呼び出しのうちの最初のものが '-1'を返すと、このメソッドはストリームの終わりであるので、' -1'も返します。それ以外の場合(例えば、1回の読み込み呼び出しが成功し、2回目に '-1'が返された場合)、読み込まれた文字数が返されます。 – bezmax