Skip to content

Commit 4bc0050

Browse files
committed
Java 8: Files.newBufferedReader instead of new FileReader
Provides potentially better performance. Signed-off-by: Markus KARG <[email protected]>
1 parent c8ed6cc commit 4bc0050

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

src/main/java/org/codehaus/plexus/util/FileUtils.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060

6161
import java.io.BufferedReader;
6262
import java.io.File;
63-
import java.io.FileReader;
6463
import java.io.FileWriter;
6564
import java.io.IOException;
6665
import java.io.InputStream;
@@ -70,6 +69,7 @@
7069
import java.io.Reader;
7170
import java.io.Writer;
7271
import java.net.URL;
72+
import java.nio.charset.Charset;
7373
import java.nio.file.Files;
7474
import java.nio.file.Paths;
7575
import java.nio.file.StandardOpenOption;
@@ -2252,16 +2252,14 @@ public static void copyFile( File from, File to, String encoding, FilterWrapper[
22522252
{
22532253
if ( encoding == null || encoding.length() < 1 )
22542254
{
2255-
fileReader = new BufferedReader( new FileReader( from ) );
2255+
fileReader = Files.newBufferedReader( from.toPath() );
22562256
fileWriter = new FileWriter( to );
22572257
}
22582258
else
22592259
{
2260-
InputStream instream = Files.newInputStream( from.toPath() );
2261-
22622260
OutputStream outstream = Files.newOutputStream( to.toPath() );
22632261

2264-
fileReader = new BufferedReader( new InputStreamReader( instream, encoding ) );
2262+
fileReader = Files.newBufferedReader( from.toPath(), Charset.forName( encoding ) );
22652263

22662264
fileWriter = new OutputStreamWriter( outstream, encoding );
22672265
}
@@ -2311,7 +2309,7 @@ public static List<String> loadFile( File file )
23112309

23122310
if ( file.exists() )
23132311
{
2314-
try ( BufferedReader reader = new BufferedReader( new FileReader( file ) ) )
2312+
try ( BufferedReader reader = Files.newBufferedReader( file.toPath() ) )
23152313
{
23162314
for ( String line = reader.readLine(); line != null; line = reader.readLine() )
23172315
{

src/main/java/org/codehaus/plexus/util/ReaderFactory.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import java.io.File;
2020
import java.io.FileNotFoundException;
21-
import java.io.FileReader;
2221
import java.io.IOException;
2322
import java.io.InputStream;
2423
import java.io.InputStreamReader;
@@ -154,13 +153,13 @@ public static Reader newPlatformReader( InputStream in )
154153
*
155154
* @param file not null file.
156155
* @return a reader instance for the input file using the default platform charset.
157-
* @throws FileNotFoundException if any.
156+
* @throws IOException if any.
158157
* @see Charset#defaultCharset()
159158
*/
160159
public static Reader newPlatformReader( File file )
161-
throws FileNotFoundException
160+
throws IOException
162161
{
163-
return new FileReader( file );
162+
return Files.newBufferedReader( file.toPath() );
164163
}
165164

166165
/**

src/test/java/org/codehaus/plexus/util/IOUtilTest.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
import java.io.BufferedOutputStream;
2424
import java.io.File;
25-
import java.io.FileReader;
2625
import java.io.FileWriter;
2726
import java.io.IOException;
2827
import java.io.InputStream;
@@ -210,7 +209,7 @@ public void testReaderToOutputStream()
210209
throws Exception
211210
{
212211
File destination = newFile( "copy3.txt" );
213-
FileReader fin = new FileReader( testFile );
212+
Reader fin = Files.newBufferedReader( testFile.toPath() );
214213
OutputStream fout = Files.newOutputStream( destination.toPath() );
215214
IOUtil.copy( fin, fout );
216215
// Note: this method *does* flush. It is equivalent to:
@@ -232,7 +231,7 @@ public void testReaderToWriter()
232231
throws Exception
233232
{
234233
File destination = newFile( "copy4.txt" );
235-
FileReader fin = new FileReader( testFile );
234+
Reader fin = Files.newBufferedReader( testFile.toPath() );
236235
FileWriter fout = new FileWriter( destination );
237236
IOUtil.copy( fin, fout );
238237

@@ -248,7 +247,7 @@ public void testReaderToWriter()
248247
public void testReaderToString()
249248
throws Exception
250249
{
251-
FileReader fin = new FileReader( testFile );
250+
Reader fin = Files.newBufferedReader( testFile.toPath() );
252251
String out = IOUtil.toString( fin );
253252
assertNotNull( out );
254253
assertTrue( "Wrong output size: out.length()=" + out.length() + "!=" + FILE_SIZE, out.length() == FILE_SIZE );
@@ -260,7 +259,7 @@ public void testStringToOutputStream()
260259
throws Exception
261260
{
262261
File destination = newFile( "copy5.txt" );
263-
FileReader fin = new FileReader( testFile );
262+
Reader fin = Files.newBufferedReader( testFile.toPath() );
264263
// Create our String. Rely on testReaderToString() to make sure this is valid.
265264
String str = IOUtil.toString( fin );
266265
OutputStream fout = Files.newOutputStream( destination.toPath() );
@@ -284,7 +283,7 @@ public void testStringToWriter()
284283
throws Exception
285284
{
286285
File destination = newFile( "copy6.txt" );
287-
FileReader fin = new FileReader( testFile );
286+
Reader fin = Files.newBufferedReader( testFile.toPath() );
288287
// Create our String. Rely on testReaderToString() to make sure this is valid.
289288
String str = IOUtil.toString( fin );
290289
FileWriter fout = new FileWriter( destination );
@@ -316,7 +315,7 @@ public void testInputStreamToByteArray()
316315
public void testStringToByteArray()
317316
throws Exception
318317
{
319-
FileReader fin = new FileReader( testFile );
318+
Reader fin = Files.newBufferedReader( testFile.toPath() );
320319

321320
// Create our String. Rely on testReaderToString() to make sure this is valid.
322321
String str = IOUtil.toString( fin );

0 commit comments

Comments
 (0)