Skip to content

Commit 3dc33d1

Browse files
mkargmichael-o
authored andcommitted
Java 7: Files.newOutputStream instead of new FilesOutputStream
Provides potentially better performance. Signed-off-by: Markus KARG <[email protected]>
1 parent 797cab4 commit 3dc33d1

File tree

9 files changed

+34
-34
lines changed

9 files changed

+34
-34
lines changed

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

+3-2
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,10 @@
5757
import java.io.File;
5858
import java.io.FileInputStream;
5959
import java.io.FileNotFoundException;
60-
import java.io.FileOutputStream;
6160
import java.io.IOException;
6261
import java.io.InputStream;
62+
import java.io.OutputStream;
63+
import java.nio.file.Files;
6364
import java.util.Date;
6465
import java.util.zip.ZipEntry;
6566
import java.util.zip.ZipInputStream;
@@ -140,7 +141,7 @@ protected void extractFile( File srcF, File dir, InputStream compressedInputStre
140141
{
141142
byte[] buffer = new byte[65536];
142143

143-
try ( FileOutputStream fos = new FileOutputStream( f ) )
144+
try ( OutputStream fos = Files.newOutputStream( f.toPath() ) )
144145
{
145146
for ( int length = compressedInputStream.read( buffer );
146147
length >= 0;

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

+7-5
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
import java.io.BufferedReader;
6262
import java.io.File;
6363
import java.io.FileInputStream;
64-
import java.io.FileOutputStream;
6564
import java.io.FileReader;
6665
import java.io.FileWriter;
6766
import java.io.IOException;
@@ -72,6 +71,9 @@
7271
import java.io.Reader;
7372
import java.io.Writer;
7473
import java.net.URL;
74+
import java.nio.file.Files;
75+
import java.nio.file.Paths;
76+
import java.nio.file.StandardOpenOption;
7577
import java.security.SecureRandom;
7678
import java.text.DecimalFormat;
7779
import java.util.ArrayList;
@@ -407,7 +409,7 @@ public static void fileAppend( String fileName, String data )
407409
public static void fileAppend( String fileName, String encoding, String data )
408410
throws IOException
409411
{
410-
try ( FileOutputStream out = new FileOutputStream( fileName, true ) )
412+
try ( OutputStream out = Files.newOutputStream( Paths.get(fileName), StandardOpenOption.APPEND ) )
411413
{
412414
if ( encoding != null )
413415
{
@@ -484,7 +486,7 @@ public static void fileWrite( File file, String encoding, String data )
484486

485487
private static OutputStreamWriter getOutputStreamWriter( File file, String encoding ) throws IOException
486488
{
487-
OutputStream out = new FileOutputStream( file );
489+
OutputStream out = Files.newOutputStream( file.toPath() );
488490
if ( encoding != null )
489491
{
490492
return new OutputStreamWriter( out, encoding );
@@ -1153,7 +1155,7 @@ public static void copyStreamToFile( final InputStreamFacade source, final File
11531155
checkCanWrite( destination );
11541156

11551157
try ( InputStream input = source.getInputStream();
1156-
FileOutputStream output = new FileOutputStream( destination ) )
1158+
OutputStream output = Files.newOutputStream( destination.toPath() ) )
11571159
{
11581160
IOUtil.copy( input, output );
11591161
}
@@ -2258,7 +2260,7 @@ public static void copyFile( File from, File to, String encoding, FilterWrapper[
22582260
{
22592261
FileInputStream instream = new FileInputStream( from );
22602262

2261-
FileOutputStream outstream = new FileOutputStream( to );
2263+
OutputStream outstream = Files.newOutputStream( to.toPath() );
22622264

22632265
fileReader = new BufferedReader( new InputStreamReader( instream, encoding ) );
22642266

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

+4-5
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818

1919
import java.io.File;
2020
import java.io.FileNotFoundException;
21-
import java.io.FileOutputStream;
2221
import java.io.FileWriter;
2322
import java.io.IOException;
2423
import java.io.OutputStream;
2524
import java.io.OutputStreamWriter;
2625
import java.io.UnsupportedEncodingException;
2726
import java.io.Writer;
2827
import java.nio.charset.Charset;
28+
import java.nio.file.Files;
2929

3030
import org.codehaus.plexus.util.xml.XmlStreamWriter;
3131

@@ -169,13 +169,12 @@ public static Writer newWriter( OutputStream out, String encoding )
169169
* @param file not null file.
170170
* @param encoding not null supported encoding.
171171
* @return a writer instance for the output file using the given encoding.
172-
* @throws UnsupportedEncodingException if any.
173-
* @throws FileNotFoundException if any.
172+
* @throws IOException if any.
174173
* @see <a href="http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html">Supported encodings</a>
175174
*/
176175
public static Writer newWriter( File file, String encoding )
177-
throws UnsupportedEncodingException, FileNotFoundException
176+
throws IOException
178177
{
179-
return newWriter( new FileOutputStream( file ), encoding );
178+
return newWriter( Files.newOutputStream( file.toPath() ), encoding );
180179
}
181180
}

src/main/java/org/codehaus/plexus/util/xml/XmlStreamWriter.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@
1717
*/
1818

1919
import java.io.File;
20-
import java.io.FileNotFoundException;
21-
import java.io.FileOutputStream;
2220
import java.io.IOException;
2321
import java.io.OutputStream;
2422
import java.io.OutputStreamWriter;
2523
import java.io.StringWriter;
2624
import java.io.Writer;
25+
import java.nio.file.Files;
2726
import java.util.Locale;
2827
import java.util.regex.Matcher;
2928
import java.util.regex.Pattern;
@@ -55,9 +54,9 @@ public XmlStreamWriter( OutputStream out )
5554
}
5655

5756
public XmlStreamWriter( File file )
58-
throws FileNotFoundException
57+
throws IOException
5958
{
60-
this( new FileOutputStream( file ) );
59+
this( Files.newOutputStream( file.toPath() ) );
6160
}
6261

6362
public String getEncoding()

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222
import java.io.ByteArrayOutputStream;
2323
import java.io.File;
2424
import java.io.FileInputStream;
25-
import java.io.FileOutputStream;
2625
import java.io.IOException;
2726
import java.io.InputStream;
2827
import java.io.OutputStream;
2928
import java.io.PrintStream;
3029
import java.io.PrintWriter;
3130
import java.io.Writer;
31+
import java.nio.file.Files;
3232
import java.util.Arrays;
3333

3434
import junit.framework.AssertionFailedError;
@@ -61,7 +61,7 @@ protected byte[] createFile( final File file, final long size )
6161

6262
byte[] data = generateTestData( size );
6363

64-
final BufferedOutputStream output = new BufferedOutputStream( new FileOutputStream( file ) );
64+
final BufferedOutputStream output = new BufferedOutputStream( Files.newOutputStream( file.toPath() ) );
6565

6666
try
6767
{

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

+5-6
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.io.ByteArrayInputStream;
2727
import java.io.File;
2828
import java.io.FileInputStream;
29-
import java.io.FileOutputStream;
3029
import java.io.IOException;
3130
import java.io.InputStream;
3231
import java.io.OutputStream;
@@ -1134,7 +1133,7 @@ public void testFileRead()
11341133
Writer writer = null;
11351134
try
11361135
{
1137-
writer = new OutputStreamWriter( new FileOutputStream( testFile ) );
1136+
writer = new OutputStreamWriter( Files.newOutputStream( testFile.toPath() ) );
11381137
writer.write( testString );
11391138
writer.flush();
11401139
}
@@ -1159,7 +1158,7 @@ public void testFileReadWithEncoding()
11591158
Writer writer = null;
11601159
try
11611160
{
1162-
writer = new OutputStreamWriter( new FileOutputStream( testFile ), encoding );
1161+
writer = new OutputStreamWriter( Files.newOutputStream( testFile.toPath() ), encoding );
11631162
writer.write( testString );
11641163
writer.flush();
11651164
}
@@ -1182,7 +1181,7 @@ public void testFileAppend()
11821181
Writer writer = null;
11831182
try
11841183
{
1185-
writer = new OutputStreamWriter( new FileOutputStream( testFile ) );
1184+
writer = new OutputStreamWriter( Files.newOutputStream( testFile.toPath() ) );
11861185
writer.write( baseString );
11871186
writer.flush();
11881187
}
@@ -1208,7 +1207,7 @@ public void testFileAppendWithEncoding()
12081207
Writer writer = null;
12091208
try
12101209
{
1211-
writer = new OutputStreamWriter( new FileOutputStream( testFile ), encoding );
1210+
writer = new OutputStreamWriter( Files.newOutputStream( testFile.toPath() ), encoding );
12121211
writer.write( baseString );
12131212
writer.flush();
12141213
}
@@ -1281,7 +1280,7 @@ public void testDeleteLongPathOnWindows()
12811280
File f = new File( a1, path.toString() + "test.txt" );
12821281

12831282
InputStream is = new ByteArrayInputStream( "Blabla".getBytes( "UTF-8" ) );
1284-
OutputStream os = new FileOutputStream( f.getCanonicalFile() );
1283+
OutputStream os = Files.newOutputStream( f.getCanonicalFile().toPath() );
12851284
IOUtil.copy( is, os );
12861285
IOUtil.close( is );
12871286
IOUtil.close( os );

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.io.BufferedOutputStream;
2424
import java.io.File;
2525
import java.io.FileInputStream;
26-
import java.io.FileOutputStream;
2726
import java.io.FileReader;
2827
import java.io.FileWriter;
2928
import java.io.IOException;
@@ -33,6 +32,7 @@
3332
import java.io.PrintWriter;
3433
import java.io.Reader;
3534
import java.io.Writer;
35+
import java.nio.file.Files;
3636
import java.util.Arrays;
3737

3838
import org.junit.Before;
@@ -95,7 +95,7 @@ public void tearDown()
9595
private void createFile( File file, long size )
9696
throws IOException
9797
{
98-
BufferedOutputStream output = new BufferedOutputStream( new FileOutputStream( file ) );
98+
BufferedOutputStream output = new BufferedOutputStream( Files.newOutputStream( file.toPath() ) );
9999

100100
for ( int i = 0; i < size; i++ )
101101
{
@@ -161,7 +161,7 @@ public void testInputStreamToOutputStream()
161161
{
162162
File destination = newFile( "copy1.txt" );
163163
FileInputStream fin = new FileInputStream( testFile );
164-
FileOutputStream fout = new FileOutputStream( destination );
164+
OutputStream fout = Files.newOutputStream( destination.toPath() );
165165

166166
IOUtil.copy( fin, fout );
167167
assertTrue( "Not all bytes were read", fin.available() == 0 );
@@ -212,7 +212,7 @@ public void testReaderToOutputStream()
212212
{
213213
File destination = newFile( "copy3.txt" );
214214
FileReader fin = new FileReader( testFile );
215-
FileOutputStream fout = new FileOutputStream( destination );
215+
OutputStream fout = Files.newOutputStream( destination.toPath() );
216216
IOUtil.copy( fin, fout );
217217
// Note: this method *does* flush. It is equivalent to:
218218
// OutputStreamWriter _out = new OutputStreamWriter(fout);
@@ -264,7 +264,7 @@ public void testStringToOutputStream()
264264
FileReader fin = new FileReader( testFile );
265265
// Create our String. Rely on testReaderToString() to make sure this is valid.
266266
String str = IOUtil.toString( fin );
267-
FileOutputStream fout = new FileOutputStream( destination );
267+
OutputStream fout = Files.newOutputStream( destination.toPath() );
268268
IOUtil.copy( str, fout );
269269
// Note: this method *does* flush. It is equivalent to:
270270
// OutputStreamWriter _out = new OutputStreamWriter(fout);
@@ -363,7 +363,7 @@ public void testByteArrayToOutputStream()
363363
throws Exception
364364
{
365365
File destination = newFile( "copy8.txt" );
366-
FileOutputStream fout = new FileOutputStream( destination );
366+
OutputStream fout = Files.newOutputStream( destination.toPath() );
367367
FileInputStream fin = new FileInputStream( testFile );
368368

369369
// Create our byte[]. Rely on testInputStreamToByteArray() to make sure this is valid.

src/test/java/org/codehaus/plexus/util/xml/PrettyPrintXMLWriterTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
import static org.junit.Assert.fail;
2222

2323
import java.io.File;
24-
import java.io.FileOutputStream;
2524
import java.io.IOException;
2625
import java.io.OutputStreamWriter;
2726
import java.io.StringWriter;
27+
import java.nio.file.Files;
2828
import java.util.NoSuchElementException;
2929

3030
import javax.swing.text.html.HTML.Tag;
@@ -171,7 +171,7 @@ public void testIssue51DetectJava7ConcatenationBug()
171171
assertTrue( "cannot create directory test-xml", dir.mkdir() );
172172
}
173173
File xmlFile = new File( dir, "test-issue-51.xml" );
174-
OutputStreamWriter osw = new OutputStreamWriter( new FileOutputStream( xmlFile ), "UTF-8" );
174+
OutputStreamWriter osw = new OutputStreamWriter( Files.newOutputStream( xmlFile.toPath() ), "UTF-8" );
175175
writer = new PrettyPrintXMLWriter( osw );
176176

177177
int iterations = 20000;

src/test/java/org/codehaus/plexus/util/xml/XmlUtilTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121

2222
import java.io.File;
2323
import java.io.FileInputStream;
24-
import java.io.FileOutputStream;
2524
import java.io.IOException;
2625
import java.io.InputStream;
2726
import java.io.OutputStream;
2827
import java.io.Reader;
2928
import java.io.StringWriter;
3029
import java.io.Writer;
30+
import java.nio.file.Files;
3131

3232
import org.codehaus.plexus.util.IOUtil;
3333
import org.codehaus.plexus.util.ReaderFactory;
@@ -78,7 +78,7 @@ public void testPrettyFormatInputStreamOutputStream()
7878
try
7979
{
8080
is = new FileInputStream( testDocument );
81-
os = new FileOutputStream( getTestOutputFile( "target/test/prettyFormatTestDocumentOutputStream.xml" ) );
81+
os = Files.newOutputStream( getTestOutputFile( "target/test/prettyFormatTestDocumentOutputStream.xml" ).toPath() );
8282

8383
assertNotNull( is );
8484
assertNotNull( os );

0 commit comments

Comments
 (0)