これが私がやろうとしていることです。たとえば、この形式の入力ファイル (input.txt) があるとします。行または列の数は異なる場合があり、列はスペースで区切られています。
the DT B-NP
current JJ I-NP
account NN I-NP
deficit NN I-NP
will MD B-VP << CURRENT TOKEN
narrow VB I-VP
to TO B-PP
only RB B-NP
各単語を 2 次元配列 x[i,j] の要素に入れたいので、インデックス ファイルを使用できます。
x[0,0]
x[0,1]
x[-1,0]
x[-2,1]
この結果を得るには:
will
MD
deficit
NN
括弧内の数字は配列の i,j インデックスであり、開始位置 [0,0] は "<< CURRENT TOKEN" でマークされた行の最初の単語です (この場合は単語 "will" です) .
したがって、次の方法でファイルを配列に読み取ることができます。
import java.awt.List;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadfileIntoArray {
String[] data = new String[100];
public void read() throws IOException {
FileReader fr = new FileReader("/Users/home/Documents/input.txt");
BufferedReader br = new BufferedReader(fr);
String line;
System.out.println("Print from here:");
int i = 0;
while ((line = br.readLine()) != null) {
data[i] = line;
System.out.println(data[i]);
i++;
}
br.close();
// This is for resize the data array (and data.length reflect new size)
String[] dataNew = new String[i];
System.arraycopy(data, 0, dataNew, 0, i);
data = dataNew;
System.out.println("Data length: " + data.length);
}
public static void main(String[] args) throws IOException {
ReadfileIntoArray rfta = new ReadfileIntoArray();
rfta.read();
}
}
しかし、私が検索したように、使用する必要があるかもしれません
List<String> arrList =FileUtils.readLines(new File("myfile.txt"));
未定義の長さ (??)についてはよくわかりませんが、それを使用するには特別なパッケージをインポートする必要があると思います。エラーが発生しました[-2,1]...
どうすれば上記のタスクを実行できますか。私にとっては非常に複雑に見えます。どうもありがとう !