Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fastest/Cleanest way to load a text file in memory

I know similar questions have been asked before, but I couldn't find one that answers my exact question.

I need a way to read a file as a String with the least code and as simple and as optimal as possible.

I'm not looking for:

final BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
while ((line = br.readLine()) != null) {

  // logic
}

And I know I can write my own helper class that does this.

I'm looking for something more along the lines of:

final String wholeFileAsStr = Something.load(file);

Where Something.load() is super optimized and buffers the file properly while reading it, taking file size into account for instance.

Can anyone recommend something from Guava or Apache maybe that I'm not aware of ?

Thanks in advance.

like image 497
Simeon Avatar asked Mar 25 '11 13:03

Simeon


People also ask

Is read faster than fread?

Conclusion: For sequential access, both fread and ifstream are equally fast. Unbuffered IO (read) is slower, as expected.


2 Answers

Perhaps IOUtils.toString , from Commons IOUtils

like image 126
nos Avatar answered Nov 09 '22 18:11

nos


For a they detailed look at all various methods of reading a single file in a JVM try the following article:

Java tip: How to read files quickly

like image 22
Gareth Davis Avatar answered Nov 09 '22 17:11

Gareth Davis