私はファイルを持っています、私はファイルが常に1つの単語だけを含むことを知っています。では、このファイルを読み取るための最も効率的な方法は何でしょうか。
小さなファイル用の入力ストリームリーダーも作成する必要がありますか、または他に利用できるオプションはありますか?
スキャナーを使用する
File file = new File("filename");
Scanner sc = new Scanner(file);
System.out.println(sc.next()); //it will give you the first word
int、float ...が最初の単語としてある場合は、nextInt()、nextFloat()...などの対応する関数を使用できます。
効率的とは、パフォーマンス面またはコードの単純さ(怠惰なプログラマー)を意味しますか?
それが2番目の場合、私が知っていることは何も勝っていません。
String fileContent = org.apache.commons.io.FileUtils.readFileToString("/your/file/name.txt")
-InputStream
とを使用しScanner
てファイルを読み取ります。
例えば:
public class Pass {
public static void main(String[] args){
File f = new File("E:\\karo.txt");
Scanner scan;
try {
scan = new Scanner(f);
while(scan.hasNextLine()){
System.out.println(scan.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- Guava
ライブラリはこれを美しく効率的に処理します。
BufferedReaderクラスとFileReaderクラスを使用します。1ワード/1行のファイルを読み取るには2行のコードで十分です。
BufferedReader br = new BufferedReader(new FileReader("Demo.txt"));
System.out.println(br.readLine());
これを行うための小さなプログラムがあります。ファイルが空の場合、出力として「null」が出力されます。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class SmallFileReader
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("Demo.txt"));
System.out.println(br.readLine());
}
}