約 1000 行の非常に長い行を含むテキスト ファイルを読み込もうとしています。ファイル全体は約 1.4MB です。ファイルを読み取るために BufferedReader の readLine メソッドを使用しています。何が起こるかというと、コンソールに出力を表示するのに 8 ~ 10 秒かかります。PHP の fgets を使用して同じことを試してみたところ、すべて同じ行が瞬く間に出力されます!!! それはどのように可能ですか?以下は私が使用しているコードです
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ClickLogDataImporter {
public static void main(String [] args) {
try {
new ClickLogDataImporter().getFileData();
} catch (Exception ex) {
Logger.getLogger(ClickLogDataImporter.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void getFileData() throws FileNotFoundException, IOException {
String path = "/home/shantanu/Documents";
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(path+"/sample.txt")));
String line = "";
while((line = (br.readLine())) != null) {
System.out.println(line);
}
}
}
PHP コード
<?php
$fileName = "/home/shantanu/Documents/sample.txt";
$file = fopen($fileName, 'r');
while(($line = fgets($file)) != false) {
echo $line."\n";
}
?>
この問題について教えてください