大きなテキストファイルがあります。このファイルのテキストを追加するなどの操作をせずに試してみると、読み込みが必要です私はarrayListにいくつかのテキストを追加しようとすると、次にそれはあまりにもゆっくりですいくつかの操作をしたい、あなたはこのデータを読んでそれを使用することができます知っていますか? これは私のコードです:大きなテキストファイルを読み込んでJavaで動作させる方法
public class ReaderTEst {
public static void main(String[] args) throws IOException {
List<String> graphList = new ArrayList<>();
List<String> edgeList = new ArrayList<>();
FileInputStream inputStream = null;
Scanner sc = null;
try {
inputStream = new FileInputStream("myText.txt");
sc = new Scanner(inputStream, "UTF-8");
while (sc.hasNextLine()) {
String line = sc.nextLine();
line = line.replace("\uFEFF", "");//i use UTF-8 file so I need delete unneeded character
if (Character.isWhitespace(line.charAt(0))) {
edgeList.add(line.trim());
} else {
graphList.add(line);
}
}
if (sc.ioException() != null) {
throw sc.ioException();
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (sc != null) {
sc.close();
}
}
}
} それは多くの時間を要し、あなたはそれがより速くなる可能性がどのように知っているのですか?私が変更した場合、私は600メガバイト でファイルのTXTを持っている:
List<Integer> graphList = new ArrayList<>(1);
int i = 0;
while (sc.hasNextLine()) {`String line = sc.nextLine();`
line = line.replace("\uFEFF", "");//i use UTF-8 file so I need delete unneeded character
graphList.add(i++);
}
私は動作しますが、私は入れた文字列をしたいとき、それは
をお勧めそれは私がUTF-8を使用し、最初の文字に、私は奇妙な空の文字を持っているので、私は唯一のcharAt(0)でそれを使用しようとする正弦ある – grapexs
ので、それは* BOMマーカーなので、最初の行から削除する必要があります。 – EJP