1

txtファイルを読み込もうとしています。txtファイルには次の行が含まれています。

First Line
Second Line
Third Line
.
.
.

今、私は次のコードを使用しています

InputStream is = null;
try {
    is = getResources().getAssets().open("myFile.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
    e.printStackTrace();
}

ArrayList<String> arrayOfLines = new ArrayList<String>();

Reader reader;
//char[] buffer = new char[2048];
try {
    Reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    int n;
    while   ((n = reader.read()) != -1) {

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

私の質問は、各行をarrayListに格納するにはどうすればよいかということです。多くの場合、チェックを使用する必要があり"/n"ますが、その方法。

4

3 に答える 3

2

Scannerまたは、クラスを使用することもできます。

Scanner in = new Scanner(new File("/path/to/file.txt"));
while(in.hasNextLine()) {
    arrayOfLines.add(in.nextLine());
}

改行をスキップする\nので、心配する必要はありません。Scanner.nextLine()

于 2012-08-12T00:23:34.697 に答える
2

このコードは機能するはずです。

 ArrayList<String> arrayOfLines = new ArrayList<String>();
 FileInputStream fstream = new FileInputStream("myfile.txt");
  DataInputStream in = new DataInputStream(fstream);
  BufferedReader br = new BufferedReader(new InputStreamReader(in));
  String strLine;
  while ((strLine = br.readLine()) != null)   {
  arrayOfLines.add(strLine);
  }
于 2012-08-12T00:25:39.553 に答える
0

これ:

int n;
while   ((n = reader.read()) != -1) {

}

おそらく次のようになります。

String line = reader.readLine();
while   (line!=null) {
    arrayOfLines.add(line);
    line = reader.readLine();
}

を使用しているので、charバッファに読み込む代わりにBufferedReader呼び出す必要があります。readLine()宣言もであるReader必要がありますBufferedReader

于 2012-08-12T00:22:22.670 に答える