Beim Versuch, Facebooks Puzzle "Hoppity Hop", http://www.facebook.com/careers/puzzles.php?puzzle_id=7, aufzulösen, lese ich nur eine ganze Zahl aus einer Datei. Ich frage mich, ob dies der effizienteste Mechanismus ist, um dies zu tun?Das effizienteste Idiom nur eine ganze Zahl aus einer Datei zu lesen?
private static int readSoleInteger(String path) throws IOException {
BufferedReader buffer = null;
int integer = 0;
try {
String integerAsString = null;
buffer = new BufferedReader(new FileReader(path));
// Read the first line only.
integerAsString = buffer.readLine();
// Remove any surplus whitespace.
integerAsString = integerAsString.trim();
integer = Integer.parseInt(integerAsString);
} finally {
buffer.close();
}
return integer;
}
Ich habe How do I create a Java string from the contents of a file? gesehen, aber ich weiß nicht, die Effizienz der Sprache, die diese Frage beantwortet.
an meinem Code Blick scheint es, wie viele Zeilen Code und Objekte für ein triviales Problem ...
Anstatt die gesamte Datei in einer Zeichenfolge zu lesen, wie die referenzierte Frage erfordert, wäre es besser, die Datei über die Datei "streamwise" zu scannen. Dies spart Speicher und vermeidet die Ineffizienz beim Lesen der gesamten Datei von der Festplatte und deren Decodierung. – erickson
Könnten Sie bitte das für mich Erickson detailliert? –
@erickson, sieht aus wie er liest nur bis zum Ende der ersten Zeile, nicht die ganze Datei –