15

テキストファイルを配列に読み込みたい。どうやってやるの?

data = new String[lines.size]

配列に10をハードコーディングしたくありません。

BufferedReader bufferedReader = new BufferedReader(new FileReader(myfile));
String []data;
data = new String[10]; // <= how can I do that? data = new String[lines.size]

for (int i=0; i<lines.size(); i++) {
    data[i] = abc.readLine();
    System.out.println(data[i]);
}
abc.close();
4

5 に答える 5

11

ArrayList またはその他の動的データ構造を使用します。

BufferedReader abc = new BufferedReader(new FileReader(myfile));
List<String> lines = new ArrayList<String>();

while((String line = abc.readLine()) != null) {
    lines.add(line);
    System.out.println(data);
}
abc.close();

// If you want to convert to a String[]
String[] data = lines.toArray(new String[]{});
于 2012-04-21T10:09:52.837 に答える
3

List代わりにaを使用してください。最後に、必要に応じて、元に戻すことができますString[]

BufferedReader abc = new BufferedReader(new FileReader(myfile));
List<String> data = new ArrayList<String>();
String s;
while((s=abc.readLine())!=null) {
    data.add(s);
    System.out.println(s);
}
abc.close();
于 2012-04-21T10:11:02.003 に答える
2

dtechs の方法で行うことが許可されておらず、ArrayList を使用する場合は、2 回読んでください。

于 2012-04-21T10:13:32.833 に答える
2

次のようなことができます:

  BufferedReader reader = new BufferedReader(new FileReader("file.text"));
    int Counter = 1;
    String line;
    while ((line = reader.readLine()) != null) {
        //read the line 
        Scanner scanner = new Scanner(line);
       //now split line using char you want and save it to array
        for (String token : line.split("@")) {
            //add element to array here 
            System.out.println(token);
        }
    }
    reader.close();
于 2018-04-23T05:20:28.200 に答える