テキスト ファイルから特定の行番号のデータを抽出する最も効率的な方法は何ですか? たとえば、スキャナを使用してファイルを解析する場合、最初にテキスト ファイルの総行数と一致する長さの配列を作成する必要がありますか?
テキスト ファイルに 30 行あり、3 行目、8 行目、12 行目だけを操作したい場合、これらの行のみを具体的に読み取る方法はありますか?
テキスト ファイルから特定の行番号のデータを抽出する最も効率的な方法は何ですか? たとえば、スキャナを使用してファイルを解析する場合、最初にテキスト ファイルの総行数と一致する長さの配列を作成する必要がありますか?
テキスト ファイルに 30 行あり、3 行目、8 行目、12 行目だけを操作したい場合、これらの行のみを具体的に読み取る方法はありますか?
これがあなたのやり方です:
import java.io.*;
public class Test {
public static void main(String [] args) {
// The name of the file to open.
String fileName = "temp.txt";
int counter = 0;
// This will reference one line at a time
String line = null;
FileReader fileReader = null;
try {
// FileReader reads text files in the default encoding.
fileReader =
new FileReader(fileName);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader =
new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
counter++;
if(counter == 3 || counter == 8 || counter == 12)
{
// do your code
}
}
}
catch(FileNotFoundException ex) {
System.out.println(
"Unable to open file '" +
fileName + "'");
}
catch(IOException ex) {
System.out.println(
"Error reading file '"
+ fileName + "'");
// Or we could just do this:
// ex.printStackTrace();
}
finally
{
if(fileReader != null){
// Always close files.
bufferedReader.close();
}
}
}
}
最後の質問について: この回答によると、Java 8 を使用すると、ファイルから特定の行を抽出できます。例はその回答に記載されています。