summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Bodewig <bodewig@apache.org>2017-04-12 06:54:09 +0200
committerStefan Bodewig <bodewig@apache.org>2017-04-12 06:54:09 +0200
commitaf74d1f6b882cef5f4167d972638ad886d12d58c (patch)
tree0e101452cf55b87d8e6239dbb5977db54ebdadfd
parent00d140c1b2ac131485862741145ddfbd68024892 (diff)
downloadant-af74d1f6b882cef5f4167d972638ad886d12d58c.tar.gz
reduce GC pressure by replacing File(In|Out)putStream
-rw-r--r--WHATSNEW3
-rw-r--r--src/main/org/apache/tools/ant/AntClassLoader.java6
-rw-r--r--src/main/org/apache/tools/ant/Diagnostics.java12
-rw-r--r--src/main/org/apache/tools/ant/Main.java12
-rw-r--r--src/main/org/apache/tools/ant/XmlLogger.java5
-rw-r--r--src/main/org/apache/tools/ant/helper/ProjectHelper2.java8
-rw-r--r--src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java11
-rw-r--r--src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java5
-rw-r--r--src/main/org/apache/tools/ant/listener/AnsiColorLogger.java5
-rw-r--r--src/main/org/apache/tools/ant/listener/MailLogger.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Ant.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/AntStructure.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/BUnzip2.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/BZip2.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/BuildNumber.java13
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Checksum.java13
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Concat.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/EchoXML.java3
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Expand.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/FixCRLF.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/GUnzip.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/GZip.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Get.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Jar.java6
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Javac.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Javadoc.java8
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/ManifestTask.java11
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Property.java6
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Replace.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/SQLExec.java3
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Tar.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Untar.java6
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/Zip.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java10
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/email/Message.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/email/UUMailer.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/EchoProperties.java10
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java12
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/Rpm.java10
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java15
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java10
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibManifestTask.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java15
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/image/Image.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/jlink/jlink.java12
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java6
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java8
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/native2ascii/BuiltinNative2Ascii.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java9
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java9
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/pvcs/Pvcs.java5
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java4
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java8
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/xz/Unxz.java7
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/xz/Xz.java4
-rw-r--r--src/main/org/apache/tools/ant/types/FilterSet.java7
-rw-r--r--src/main/org/apache/tools/ant/types/XMLCatalog.java4
-rw-r--r--src/main/org/apache/tools/ant/types/resources/FileResource.java7
-rw-r--r--src/main/org/apache/tools/ant/types/selectors/modifiedselector/ChecksumAlgorithm.java5
-rw-r--r--src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java7
-rw-r--r--src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java9
-rw-r--r--src/main/org/apache/tools/ant/util/ConcatFileInputStream.java4
-rw-r--r--src/main/org/apache/tools/ant/util/FileUtils.java19
-rw-r--r--src/main/org/apache/tools/ant/util/LayoutPreservingProperties.java4
-rw-r--r--src/main/org/apache/tools/ant/util/LazyFileOutputStream.java6
-rw-r--r--src/main/org/apache/tools/ant/util/ResourceUtils.java15
-rw-r--r--src/main/org/apache/tools/ant/util/ScriptRunnerBase.java7
-rw-r--r--src/main/org/apache/tools/zip/ZipOutputStream.java4
85 files changed, 311 insertions, 279 deletions
diff --git a/WHATSNEW b/WHATSNEW
index 5bc79b504..1475aecc4 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -25,6 +25,9 @@ Other changes:
* added "regexp" attribute to <linecontainsregexp>
Bugzilla Report 60968
+ * reduced GC pressure by replacing all usage of FileInputStream and
+ FileOutputStream.
+
Changes from Ant 1.10.0 TO Ant 1.10.1
=====================================
diff --git a/src/main/org/apache/tools/ant/AntClassLoader.java b/src/main/org/apache/tools/ant/AntClassLoader.java
index f4ee2b0e5..22c4b2998 100644
--- a/src/main/org/apache/tools/ant/AntClassLoader.java
+++ b/src/main/org/apache/tools/ant/AntClassLoader.java
@@ -20,12 +20,12 @@ package org.apache.tools.ant;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import java.net.URL;
+import java.nio.file.Files;
import java.security.CodeSource;
import java.security.ProtectionDomain;
import java.security.cert.Certificate;
@@ -787,7 +787,7 @@ public class AntClassLoader extends ClassLoader implements SubBuildListener, Clo
if (jarFile == null && file.isDirectory()) {
final File resource = new File(file, resourceName);
if (resource.exists()) {
- return new FileInputStream(resource);
+ return Files.newInputStream(resource.toPath());
}
} else {
if (jarFile == null) {
@@ -1579,7 +1579,7 @@ public class AntClassLoader extends ClassLoader implements SubBuildListener, Clo
}
private static boolean readFully(final File f, final byte[] b) throws IOException {
- try (FileInputStream fis = new FileInputStream(f)) {
+ try (InputStream fis = Files.newInputStream(f.toPath())) {
final int len = b.length;
int count = 0, x = 0;
while (count != len) {
diff --git a/src/main/org/apache/tools/ant/Diagnostics.java b/src/main/org/apache/tools/ant/Diagnostics.java
index 9cd1f81ad..735b349f3 100644
--- a/src/main/org/apache/tools/ant/Diagnostics.java
+++ b/src/main/org/apache/tools/ant/Diagnostics.java
@@ -18,15 +18,15 @@
package org.apache.tools.ant;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.io.PrintStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
+import java.nio.file.Files;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.Properties;
@@ -576,12 +576,12 @@ public final class Diagnostics {
//create the file
long now = System.currentTimeMillis();
File tempFile = null;
- FileOutputStream fileout = null;
- FileInputStream filein = null;
+ OutputStream fileout = null;
+ InputStream filein = null;
try {
tempFile = File.createTempFile("diag", "txt", tempDirectory);
//do some writing to it
- fileout = new FileOutputStream(tempFile);
+ fileout = Files.newOutputStream(tempFile.toPath());
byte[] buffer = new byte[KILOBYTE];
for (int i = 0; i < TEST_FILE_SIZE; i++) {
fileout.write(buffer);
@@ -591,7 +591,7 @@ public final class Diagnostics {
// read to make sure the file has been written completely
Thread.sleep(1000);
- filein = new FileInputStream(tempFile);
+ filein = Files.newInputStream(tempFile.toPath());
int total = 0;
int read = 0;
while ((read = filein.read(buffer, 0, KILOBYTE)) > 0) {
diff --git a/src/main/org/apache/tools/ant/Main.java b/src/main/org/apache/tools/ant/Main.java
index b104fd33a..bbaadd020 100644
--- a/src/main/org/apache/tools/ant/Main.java
+++ b/src/main/org/apache/tools/ant/Main.java
@@ -19,11 +19,11 @@
package org.apache.tools.ant;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -355,10 +355,10 @@ public class Main implements AntMain {
try {
final File logFile = new File(args[i + 1]);
i++;
- // life-cycle of FileOutputStream is controlled by
+ // life-cycle of OutputStream is controlled by
// logTo which becomes "out" and is closed in
// handleLogfile
- logTo = new PrintStream(new FileOutputStream(logFile)); //NOSONAR
+ logTo = new PrintStream(Files.newOutputStream(logFile.toPath())); //NOSONAR
isLogFileUsed = true;
} catch (final IOException ioe) {
final String msg = "Cannot write on the specified log file. "
@@ -656,9 +656,9 @@ public class Main implements AntMain {
private void loadPropertyFiles() {
for (final String filename : propertyFiles) {
final Properties props = new Properties();
- FileInputStream fis = null;
+ InputStream fis = null;
try {
- fis = new FileInputStream(filename);
+ fis = Files.newInputStream(Paths.get(filename));
props.load(fis);
} catch (final IOException e) {
System.out.println("Could not load property file "
diff --git a/src/main/org/apache/tools/ant/XmlLogger.java b/src/main/org/apache/tools/ant/XmlLogger.java
index d03067d13..086123efc 100644
--- a/src/main/org/apache/tools/ant/XmlLogger.java
+++ b/src/main/org/apache/tools/ant/XmlLogger.java
@@ -17,12 +17,13 @@
*/
package org.apache.tools.ant;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.Writer;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Stack;
@@ -185,7 +186,7 @@ public class XmlLogger implements BuildLogger {
// up everything
OutputStream stream = outStream;
if (stream == null) {
- stream = new FileOutputStream(outFilename);
+ stream = Files.newOutputStream(Paths.get(outFilename));
}
out = new OutputStreamWriter(stream, "UTF8");
out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
diff --git a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
index 67e1decb9..1fce8bc0c 100644
--- a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
+++ b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
@@ -18,13 +18,13 @@
package org.apache.tools.ant.helper;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
+import java.nio.file.Files;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
@@ -247,7 +247,7 @@ public class ProjectHelper2 extends ProjectHelper {
String uri = null;
if (buildFile != null) {
uri = FILE_UTILS.toURI(buildFile.getAbsolutePath());
- inputStream = new FileInputStream(buildFile);
+ inputStream = Files.newInputStream(buildFile.toPath());
} else {
uri = url.toString();
int pling = -1;
@@ -538,10 +538,10 @@ public class ProjectHelper2 extends ProjectHelper {
}
context.getProject().log("file=" + file, Project.MSG_DEBUG);
try {
- InputSource inputSource = new InputSource(new FileInputStream(file));
+ InputSource inputSource = new InputSource(Files.newInputStream(file.toPath()));
inputSource.setSystemId(FILE_UTILS.toURI(file.getAbsolutePath()));
return inputSource;
- } catch (FileNotFoundException fne) {
+ } catch (IOException fne) {
context.getProject().log(file.getAbsolutePath() + " could not be found",
Project.MSG_WARN);
}
diff --git a/src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java b/src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java
index 97c42a028..dcd2b1826 100644
--- a/src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java
+++ b/src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java
@@ -18,10 +18,11 @@
package org.apache.tools.ant.helper;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
import java.io.UnsupportedEncodingException;
+import java.nio.file.Files;
import java.util.Locale;
import org.apache.tools.ant.BuildException;
@@ -110,7 +111,7 @@ public class ProjectHelperImpl extends ProjectHelper {
+ "default plugin");
}
File bFile = (File) source;
- FileInputStream inputStream = null;
+ InputStream inputStream = null;
InputSource inputSource = null;
this.project = project;
@@ -124,7 +125,7 @@ public class ProjectHelperImpl extends ProjectHelper {
parser = new XMLReaderAdapter(JAXPUtils.getXMLReader());
}
String uri = FILE_UTILS.toURI(bFile.getAbsolutePath());
- inputStream = new FileInputStream(bFile);
+ inputStream = Files.newInputStream(bFile.toPath());
inputSource = new InputSource(inputStream);
inputSource.setSystemId(uri);
project.log("parsing buildfile " + bFile + " with URI = " + uri, Project.MSG_VERBOSE);
@@ -302,10 +303,10 @@ public class ProjectHelperImpl extends ProjectHelper {
+ "' for compliance with other XML tools", Project.MSG_WARN);
}
try {
- InputSource inputSource = new InputSource(new FileInputStream(file));
+ InputSource inputSource = new InputSource(Files.newInputStream(file.toPath()));
inputSource.setSystemId(FILE_UTILS.toURI(file.getAbsolutePath()));
return inputSource;
- } catch (FileNotFoundException fne) {
+ } catch (IOException fne) {
helperImpl.project.log(file.getAbsolutePath() + " could not be found",
Project.MSG_WARN);
}
diff --git a/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java b/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java
index e1e3cf113..22a99d366 100644
--- a/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java
+++ b/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java
@@ -18,8 +18,9 @@
package org.apache.tools.ant.input;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Properties;
import org.apache.tools.ant.BuildException;
@@ -82,7 +83,7 @@ public class PropertyFileInputHandler implements InputHandler {
props = new Properties();
try {
- props.load(new FileInputStream(propsFile));
+ props.load(Files.newInputStream(Paths.get(propsFile)));
} catch (IOException e) {
throw new BuildException("Couldn't load " + propsFile, e);
}
diff --git a/src/main/org/apache/tools/ant/listener/AnsiColorLogger.java b/src/main/org/apache/tools/ant/listener/AnsiColorLogger.java
index 7519a7e8d..0e29b40db 100644
--- a/src/main/org/apache/tools/ant/listener/AnsiColorLogger.java
+++ b/src/main/org/apache/tools/ant/listener/AnsiColorLogger.java
@@ -17,10 +17,11 @@
*/
package org.apache.tools.ant.listener;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Properties;
import org.apache.tools.ant.DefaultLogger;
@@ -162,7 +163,7 @@ public class AnsiColorLogger extends DefaultLogger {
Properties prop = new Properties();
if (userColorFile != null) {
- in = new FileInputStream(userColorFile);
+ in = Files.newInputStream(Paths.get(userColorFile));
} else {
in = getClass().getResourceAsStream(systemColorFile);
}
diff --git a/src/main/org/apache/tools/ant/listener/MailLogger.java b/src/main/org/apache/tools/ant/listener/MailLogger.java
index 45289a1c4..25f5bab8a 100644
--- a/src/main/org/apache/tools/ant/listener/MailLogger.java
+++ b/src/main/org/apache/tools/ant/listener/MailLogger.java
@@ -18,10 +18,11 @@
package org.apache.tools.ant.listener;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
@@ -119,7 +120,7 @@ public class MailLogger extends DefaultLogger {
if (filename != null) {
InputStream is = null;
try {
- is = new FileInputStream(filename);
+ is = Files.newInputStream(Paths.get(filename));
fileProperties.load(is);
} catch (IOException ioe) {
// ignore because properties file is not required
diff --git a/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java b/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
index 1ce81166f..8762ddc47 100644
--- a/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
@@ -20,10 +20,10 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
@@ -201,8 +201,7 @@ public abstract class AbstractCvsTask extends Task {
try {
setOutputStream(new PrintStream(
new BufferedOutputStream(
- new FileOutputStream(output
- .getPath(),
+ FileUtils.newOutputStream(Paths.get(output.getPath()),
append))));
} catch (IOException e) {
throw new BuildException(e, getLocation());
@@ -241,7 +240,7 @@ public abstract class AbstractCvsTask extends Task {
try {
setErrorStream(new PrintStream(
new BufferedOutputStream(
- new FileOutputStream(error.getPath(),
+ FileUtils.newOutputStream(Paths.get(error.getPath()),
append))));
} catch (IOException e) {
throw new BuildException(e, getLocation());
diff --git a/src/main/org/apache/tools/ant/taskdefs/Ant.java b/src/main/org/apache/tools/ant/taskdefs/Ant.java
index 793d16c98..88fddf8b7 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Ant.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Ant.java
@@ -19,10 +19,10 @@
package org.apache.tools.ant.taskdefs;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.lang.reflect.Method;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Hashtable;
@@ -206,7 +206,7 @@ public class Ant extends Task {
outfile = getProject().resolveFile(output);
}
try {
- out = new PrintStream(new FileOutputStream(outfile));
+ out = new PrintStream(Files.newOutputStream(outfile.toPath()));
DefaultLogger logger = new DefaultLogger();
logger.setMessageOutputLevel(Project.MSG_INFO);
logger.setOutputPrintStream(out);
diff --git a/src/main/org/apache/tools/ant/taskdefs/AntStructure.java b/src/main/org/apache/tools/ant/taskdefs/AntStructure.java
index 8554a2a3a..eeaab53db 100644
--- a/src/main/org/apache/tools/ant/taskdefs/AntStructure.java
+++ b/src/main/org/apache/tools/ant/taskdefs/AntStructure.java
@@ -19,12 +19,13 @@
package org.apache.tools.ant.taskdefs;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
@@ -85,9 +86,9 @@ public class AntStructure extends Task {
PrintWriter out = null;
try {
- FileOutputStream fos = null;
+ OutputStream fos = null;
try {
- fos = new FileOutputStream(output);
+ fos = Files.newOutputStream(output.toPath());
out = new PrintWriter(new OutputStreamWriter(fos, "UTF8"));
} catch (final UnsupportedEncodingException ue) {
FileUtils.close(fos);
diff --git a/src/main/org/apache/tools/ant/taskdefs/BUnzip2.java b/src/main/org/apache/tools/ant/taskdefs/BUnzip2.java
index e4a7995fa..0122e9566 100644
--- a/src/main/org/apache/tools/ant/taskdefs/BUnzip2.java
+++ b/src/main/org/apache/tools/ant/taskdefs/BUnzip2.java
@@ -20,9 +20,10 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils;
@@ -60,12 +61,12 @@ public class BUnzip2 extends Unpack {
log("Expanding " + srcResource.getName() + " to "
+ dest.getAbsolutePath());
- FileOutputStream out = null;
+ OutputStream out = null;
CBZip2InputStream zIn = null;
InputStream fis = null;
BufferedInputStream bis = null;
try {
- out = new FileOutputStream(dest);
+ out = Files.newOutputStream(dest.toPath());
fis = srcResource.getInputStream();
bis = new BufferedInputStream(fis);
int b = bis.read();
diff --git a/src/main/org/apache/tools/ant/taskdefs/BZip2.java b/src/main/org/apache/tools/ant/taskdefs/BZip2.java
index f5944df5f..1338d4ee5 100644
--- a/src/main/org/apache/tools/ant/taskdefs/BZip2.java
+++ b/src/main/org/apache/tools/ant/taskdefs/BZip2.java
@@ -20,8 +20,9 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedOutputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils;
@@ -44,7 +45,7 @@ public class BZip2 extends Pack {
CBZip2OutputStream zOut = null;
try {
BufferedOutputStream bos =
- new BufferedOutputStream(new FileOutputStream(zipFile));
+ new BufferedOutputStream(Files.newOutputStream(zipFile.toPath()));
bos.write('B');
bos.write('Z');
zOut = new CBZip2OutputStream(bos);
diff --git a/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java b/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java
index aee071d31..30552f758 100644
--- a/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java
+++ b/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java
@@ -18,9 +18,10 @@
package org.apache.tools.ant.taskdefs;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.Properties;
import org.apache.tools.ant.BuildException;
@@ -84,10 +85,10 @@ public class BuildNumber
String.valueOf(buildNumber + 1));
// Write the properties file back out
- FileOutputStream output = null;
+ OutputStream output = null;
try {
- output = new FileOutputStream(myFile);
+ output = Files.newOutputStream(myFile.toPath());
final String header = "Build Number for ANT. Do not edit!";
@@ -144,12 +145,12 @@ public class BuildNumber
*/
private Properties loadProperties()
throws BuildException {
- FileInputStream input = null;
+ InputStream input = null;
try {
final Properties properties = new Properties();
- input = new FileInputStream(myFile);
+ input = Files.newInputStream(myFile.toPath());
properties.load(input);
return properties;
} catch (final IOException ioe) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/Checksum.java b/src/main/org/apache/tools/ant/taskdefs/Checksum.java
index 7a94ca098..f30d8d75d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Checksum.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Checksum.java
@@ -19,10 +19,11 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -471,8 +472,8 @@ public class Checksum extends MatchingTask implements Condition {
*/
private boolean generateChecksums() throws BuildException {
boolean checksumMatches = true;
- FileInputStream fis = null;
- FileOutputStream fos = null;
+ InputStream fis = null;
+ OutputStream fos = null;
byte[] buf = new byte[readBufferSize];
try {
for (Map.Entry<File, Object> e : includeFileMap.entrySet()) {
@@ -481,7 +482,7 @@ public class Checksum extends MatchingTask implements Condition {
if (!isCondition) {
log("Calculating " + algorithm + " checksum for " + src, Project.MSG_VERBOSE);
}
- fis = new FileInputStream(src);
+ fis = Files.newInputStream(src.toPath());
DigestInputStream dis = new DigestInputStream(fis,
messageDigest);
while (dis.read(buf, 0, readBufferSize) != -1) {
@@ -523,7 +524,7 @@ public class Checksum extends MatchingTask implements Condition {
}
} else {
File dest = (File) destination;
- fos = new FileOutputStream(dest);
+ fos = Files.newOutputStream(dest.toPath());
fos.write(format.format(new Object[] {
checksum,
src.getName(),
diff --git a/src/main/org/apache/tools/ant/taskdefs/Concat.java b/src/main/org/apache/tools/ant/taskdefs/Concat.java
index 1af0143cd..afffcef39 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Concat.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Concat.java
@@ -19,7 +19,6 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
@@ -27,6 +26,7 @@ import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
+import java.nio.file.Files;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
@@ -139,7 +139,7 @@ public class Concat extends Task implements ResourceCollection {
reader = new BufferedReader(new FileReader(file));
} else {
reader = new BufferedReader(
- new InputStreamReader(new FileInputStream(file),
+ new InputStreamReader(Files.newInputStream(file.toPath()),
this.encoding));
}
value = FileUtils.safeReadFully(reader);
diff --git a/src/main/org/apache/tools/ant/taskdefs/EchoXML.java b/src/main/org/apache/tools/ant/taskdefs/EchoXML.java
index 4a4fda292..5873ab758 100644
--- a/src/main/org/apache/tools/ant/taskdefs/EchoXML.java
+++ b/src/main/org/apache/tools/ant/taskdefs/EchoXML.java
@@ -18,7 +18,6 @@
package org.apache.tools.ant.taskdefs;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.OutputStream;
import org.apache.tools.ant.BuildException;
@@ -83,7 +82,7 @@ public class EchoXML extends XMLFragment {
OutputStream os = null;
try {
if (file != null) {
- os = new FileOutputStream(file.getAbsolutePath(), append);
+ os = FileUtils.newOutputStream(file.toPath(), append);
} else {
os = new LogOutputStream(this, Project.MSG_INFO);
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/Expand.java b/src/main/org/apache/tools/ant/taskdefs/Expand.java
index 0ec233308..6dd3c9291 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Expand.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Expand.java
@@ -20,9 +20,10 @@ package org.apache.tools.ant.taskdefs;
import java.io.File;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashSet;
@@ -350,9 +351,9 @@ public class Expand extends Task {
} else {
byte[] buffer = new byte[BUFFER_SIZE];
int length = 0;
- FileOutputStream fos = null;
+ OutputStream fos = null;
try {
- fos = new FileOutputStream(f);
+ fos = Files.newOutputStream(f.toPath());
while ((length =
compressedInputStream.read(buffer)) >= 0) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java b/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java
index 465bf462b..af2a21fda 100644
--- a/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java
+++ b/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java
@@ -20,11 +20,11 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import java.util.Vector;
@@ -421,7 +421,7 @@ public class FixCRLF extends MatchingTask implements ChainableReader {
reader = new BufferedReader(
((encoding == null) ? new FileReader(srcFile)
: new InputStreamReader(
- new FileInputStream(srcFile), encoding)), INBUFLEN);
+ Files.newInputStream(srcFile.toPath()), encoding)), INBUFLEN);
nextLine();
} catch (IOException e) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/GUnzip.java b/src/main/org/apache/tools/ant/taskdefs/GUnzip.java
index b891bae54..94f08d78b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/GUnzip.java
+++ b/src/main/org/apache/tools/ant/taskdefs/GUnzip.java
@@ -18,9 +18,10 @@
package org.apache.tools.ant.taskdefs;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.zip.GZIPInputStream;
import org.apache.tools.ant.BuildException;
@@ -56,11 +57,11 @@ public class GUnzip extends Unpack {
log("Expanding " + srcResource.getName() + " to "
+ dest.getAbsolutePath());
- FileOutputStream out = null;
+ OutputStream out = null;
GZIPInputStream zIn = null;
InputStream fis = null;
try {
- out = new FileOutputStream(dest);
+ out = Files.newOutputStream(dest.toPath());
fis = srcResource.getInputStream();
zIn = new GZIPInputStream(fis);
byte[] buffer = new byte[BUFFER_SIZE];
diff --git a/src/main/org/apache/tools/ant/taskdefs/GZip.java b/src/main/org/apache/tools/ant/taskdefs/GZip.java
index 029f414dc..4d7be1f62 100644
--- a/src/main/org/apache/tools/ant/taskdefs/GZip.java
+++ b/src/main/org/apache/tools/ant/taskdefs/GZip.java
@@ -18,8 +18,9 @@
package org.apache.tools.ant.taskdefs;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.zip.GZIPOutputStream;
import org.apache.tools.ant.BuildException;
@@ -41,7 +42,7 @@ public class GZip extends Pack {
protected void pack() {
GZIPOutputStream zOut = null;
try {
- zOut = new GZIPOutputStream(new FileOutputStream(zipFile));
+ zOut = new GZIPOutputStream(Files.newOutputStream(zipFile.toPath()));
zipResource(getSrcResource(), zOut);
} catch (IOException ioe) {
String msg = "Problem creating gzip " + ioe.getMessage();
diff --git a/src/main/org/apache/tools/ant/taskdefs/Get.java b/src/main/org/apache/tools/ant/taskdefs/Get.java
index 674a535e1..9b92f00ab 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Get.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Get.java
@@ -20,7 +20,6 @@ package org.apache.tools.ant.taskdefs;
import java.io.File;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -28,6 +27,7 @@ import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
+import java.nio.file.Files;
import java.util.Date;
import java.util.zip.GZIPInputStream;
@@ -852,7 +852,7 @@ public class Get extends Task {
is = new GZIPInputStream(is);
}
- os = new FileOutputStream(dest);
+ os = Files.newOutputStream(dest.toPath());
progress.beginDownload();
boolean finished = false;
try {
diff --git a/src/main/org/apache/tools/ant/taskdefs/Jar.java b/src/main/org/apache/tools/ant/taskdefs/Jar.java
index bea5e86c9..7902075b6 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Jar.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Jar.java
@@ -21,7 +21,6 @@ package org.apache.tools.ant.taskdefs;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -29,6 +28,7 @@ import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -303,10 +303,10 @@ public class Jar extends Zip {
private Manifest getManifest(File manifestFile) {
Manifest newManifest = null;
- FileInputStream fis = null;
+ InputStream fis = null;
InputStreamReader isr = null;
try {
- fis = new FileInputStream(manifestFile);
+ fis = Files.newInputStream(manifestFile.toPath());
if (manifestEncoding == null) {
isr = new InputStreamReader(fis);
} else {
diff --git a/src/main/org/apache/tools/ant/taskdefs/Javac.java b/src/main/org/apache/tools/ant/taskdefs/Javac.java
index b7f1bbcb5..6e7cee3b1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Javac.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Javac.java
@@ -20,9 +20,9 @@ package org.apache.tools.ant.taskdefs;
import java.io.File;
import java.io.FileFilter;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -1471,7 +1471,7 @@ public class Javac extends MatchingTask {
continue;
}
log("Creating empty " + pkgInfoClass);
- try (OutputStream os = new FileOutputStream(pkgInfoClass)) {
+ try (OutputStream os = Files.newOutputStream(pkgInfoClass.toPath())) {
os.write(PACKAGE_INFO_CLASS_HEADER);
final byte[] name = pkg.getBytes("UTF-8");
final int length = name.length + /* "/package-info" */ 13;
diff --git a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
index ebdce4965..ccf154824 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
@@ -20,18 +20,18 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashSet;
@@ -2516,7 +2516,7 @@ public class Javadoc extends Task {
: FILE_UTILS.getDefaultEncoding();
// we load the whole file as one String (toc/index files are
// generally small, because they only contain frameset declaration):
- final InputStream fin = new FileInputStream(file);
+ final InputStream fin = Files.newInputStream(file.toPath());
String fileContents;
try {
fileContents =
@@ -2532,7 +2532,7 @@ public class Javadoc extends Task {
// we need to patch the file!
final String patchedFileContents = patchContent(fileContents, fixData);
if (!patchedFileContents.equals(fileContents)) {
- final FileOutputStream fos = new FileOutputStream(file);
+ final OutputStream fos = Files.newOutputStream(file.toPath());
try {
final OutputStreamWriter w = new OutputStreamWriter(fos, enc);
w.write(patchedFileContents);
diff --git a/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java b/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java
index 9b600db55..8b459bef2 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java
@@ -19,12 +19,13 @@
package org.apache.tools.ant.taskdefs;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.nio.file.Files;
import java.util.Enumeration;
import org.apache.tools.ant.BuildException;
@@ -227,10 +228,10 @@ public class ManifestTask extends Task {
BuildException error = null;
if (manifestFile.exists()) {
- FileInputStream fis = null;
+ InputStream fis = null;
InputStreamReader isr = null;
try {
- fis = new FileInputStream(manifestFile);
+ fis = Files.newInputStream(manifestFile.toPath());
if (encoding == null) {
isr = new InputStreamReader(fis, "UTF-8");
} else {
@@ -276,7 +277,7 @@ public class ManifestTask extends Task {
PrintWriter w = null;
try {
- FileOutputStream fos = new FileOutputStream(manifestFile);
+ OutputStream fos = Files.newOutputStream(manifestFile.toPath());
OutputStreamWriter osw = new OutputStreamWriter(fos, Manifest.JAR_ENCODING);
w = new PrintWriter(osw);
toWrite.write(w, flattenClassPaths);
diff --git a/src/main/org/apache/tools/ant/taskdefs/Property.java b/src/main/org/apache/tools/ant/taskdefs/Property.java
index db2d9d4d8..c8f33bed1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Property.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Property.java
@@ -18,10 +18,10 @@
package org.apache.tools.ant.taskdefs;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.nio.file.Files;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -575,9 +575,9 @@ public class Property extends Task {
log("Loading " + file.getAbsolutePath(), Project.MSG_VERBOSE);
try {
if (file.exists()) {
- FileInputStream fis = null;
+ InputStream fis = null;
try {
- fis = new FileInputStream(file);
+ fis = Files.newInputStream(file.toPath());
loadProperties(props, fis, file.getName().endsWith(".xml"));
} finally {
FileUtils.close(fis);
diff --git a/src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java b/src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java
index a49593681..0155afce1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java
+++ b/src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java
@@ -17,9 +17,9 @@
*/
package org.apache.tools.ant.taskdefs;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
+import java.nio.file.Paths;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildException;
@@ -27,6 +27,7 @@ import org.apache.tools.ant.BuildLogger;
import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.SubBuildListener;
+import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.StringUtils;
/**
@@ -356,7 +357,7 @@ public class RecorderEntry implements BuildLogger, SubBuildListener {
private void openFileImpl(boolean append) throws BuildException {
if (out == null) {
try {
- out = new PrintStream(new FileOutputStream(filename, append));
+ out = new PrintStream(FileUtils.newOutputStream(Paths.get(filename), append));
} catch (IOException ioe) {
throw new BuildException("Problems opening file using a "
+ "recorder entry", ioe);
diff --git a/src/main/org/apache/tools/ant/taskdefs/Replace.java b/src/main/org/apache/tools/ant/taskdefs/Replace.java
index 1b6cb37bc..509034569 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Replace.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Replace.java
@@ -21,8 +21,6 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -30,6 +28,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -369,7 +368,7 @@ public class Replace extends MatchingTask {
FileInput(File source) throws IOException {
outputBuffer = new StringBuffer();
buffer = new char[BUFF_SIZE];
- is = new FileInputStream(source);
+ is = Files.newInputStream(source.toPath());
try {
reader = new BufferedReader(encoding != null ? new InputStreamReader(is, encoding) : new InputStreamReader(is));
} finally {
@@ -429,7 +428,7 @@ public class Replace extends MatchingTask {
* @throws IOException When the file cannot be read from.
*/
FileOutput(File out) throws IOException {
- os = new FileOutputStream(out);
+ os = Files.newOutputStream(out.toPath());
try {
writer = new BufferedWriter(encoding != null ? new OutputStreamWriter(os, encoding) : new OutputStreamWriter(os));
} finally {
diff --git a/src/main/org/apache/tools/ant/taskdefs/SQLExec.java b/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
index d9b7fb460..3ef604d1b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
+++ b/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
@@ -20,7 +20,6 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -651,7 +650,7 @@ public class SQLExec extends JDBCTask {
FileProvider fp =
output.as(FileProvider.class);
if (fp != null) {
- os = new FileOutputStream(fp.getFile(), append);
+ os = FileUtils.newOutputStream(fp.getFile().toPath(), append);
} else {
if (append) {
Appendable a =
diff --git a/src/main/org/apache/tools/ant/taskdefs/Tar.java b/src/main/org/apache/tools/ant/taskdefs/Tar.java
index 815477ab9..653cc5b37 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Tar.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Tar.java
@@ -20,12 +20,12 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
+import java.nio.file.Files;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -327,7 +327,7 @@ public class Tar extends MatchingTask {
tOut = new TarOutputStream(
compression.compress(
new BufferedOutputStream(
- new FileOutputStream(tarFile))),
+ Files.newOutputStream(tarFile.toPath()))),
encoding);
tOut.setDebug(true);
if (longFileMode.isTruncateMode()) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/Untar.java b/src/main/org/apache/tools/ant/taskdefs/Untar.java
index c3e6e15f7..430aa5401 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Untar.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Untar.java
@@ -20,11 +20,11 @@ package org.apache.tools.ant.taskdefs;
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
+import java.nio.file.Files;
import java.util.zip.GZIPInputStream;
import org.apache.tools.ant.BuildException;
@@ -97,7 +97,7 @@ public class Untar extends Expand {
*/
/** {@inheritDoc} */
protected void expandFile(FileUtils fileUtils, File srcF, File dir) {
- FileInputStream fis = null;
+ InputStream fis = null;
if (!srcF.exists()) {
throw new BuildException("Unable to untar "
+ srcF
@@ -105,7 +105,7 @@ public class Untar extends Expand {
getLocation());
}
try {
- fis = new FileInputStream(srcF);
+ fis = Files.newInputStream(srcF.toPath());
expandStream(srcF.getPath(), fis, dir);
} catch (IOException ioe) {
throw new BuildException("Error while expanding " + srcF.getPath()
diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java
index 580176f88..1a17bfcdd 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Zip.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java
@@ -20,11 +20,10 @@ package org.apache.tools.ant.taskdefs;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -1177,7 +1176,7 @@ public class Zip extends MatchingTask {
}
OutputStream os = null;
try {
- os = new FileOutputStream(zipFile);
+ os = Files.newOutputStream(zipFile.toPath());
// CheckStyle:MagicNumber OFF
// Cf. PKZIP specification.
final byte[] empty = new byte[22];
@@ -1915,7 +1914,7 @@ public class Zip extends MatchingTask {
getLocation());
}
- try (FileInputStream fIn = new FileInputStream(file)) {
+ try (InputStream fIn = Files.newInputStream(file.toPath())) {
// ZIPs store time with a granularity of 2 seconds, round up
zipFile(fIn, zOut, vPath,
file.lastModified() + (roundUp ? ROUNDUP_MILLIS : 0),
diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
index b4b51ced2..63cf657a3 100644
--- a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
@@ -18,12 +18,12 @@
package org.apache.tools.ant.taskdefs.cvslib;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
+import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
@@ -386,7 +386,7 @@ public class ChangeLogTask extends AbstractCvsTask {
throws BuildException {
if (null != usersFile) {
try {
- userList.load(new FileInputStream(usersFile));
+ userList.load(Files.newInputStream(usersFile.toPath()));
} catch (final IOException ioe) {
throw new BuildException(ioe.toString(), ioe);
}
@@ -462,10 +462,10 @@ public class ChangeLogTask extends AbstractCvsTask {
*/
private void writeChangeLog(final CVSEntry[] entrySet)
throws BuildException {
- FileOutputStream output = null;
+ OutputStream output = null;
try {
- output = new FileOutputStream(destFile);
+ output = Files.newOutputStream(destFile.toPath());
final PrintWriter writer =
new PrintWriter(new OutputStreamWriter(output, "UTF-8"));
diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
index 6f17402d8..9fbc3fd6a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
+++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
@@ -19,12 +19,13 @@ package org.apache.tools.ant.taskdefs.cvslib;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -417,9 +418,9 @@ public class CvsTagDiff extends AbstractCvsTask {
* @exception BuildException if an error occurs
*/
private void writeTagDiff(CvsTagEntry[] entries) throws BuildException {
- FileOutputStream output = null;
+ OutputStream output = null;
try {
- output = new FileOutputStream(mydestfile);
+ output = Files.newOutputStream(mydestfile.toPath());
PrintWriter writer = new PrintWriter(
new OutputStreamWriter(output, "UTF-8"));
writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
diff --git a/src/main/org/apache/tools/ant/taskdefs/email/Message.java b/src/main/org/apache/tools/ant/taskdefs/email/Message.java
index a73fdfa51..a7551bb8d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/email/Message.java
+++ b/src/main/org/apache/tools/ant/taskdefs/email/Message.java
@@ -20,13 +20,14 @@ package org.apache.tools.ant.taskdefs.email;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.Reader;
+import java.nio.file.Files;
import org.apache.tools.ant.ProjectComponent;
@@ -185,7 +186,7 @@ public class Message extends ProjectComponent {
private Reader getReader(File f) throws IOException {
if (inputEncoding != null) {
- FileInputStream fis = new FileInputStream(f);
+ InputStream fis = Files.newInputStream(f.toPath());
try {
return new InputStreamReader(fis, inputEncoding);
} catch (IOException ex) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java b/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java
index 3b1f95bcb..0ad57c6e0 100644
--- a/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java
+++ b/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java
@@ -19,9 +19,10 @@ package org.apache.tools.ant.taskdefs.email;
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
import java.util.Enumeration;
import org.apache.tools.ant.BuildException;
@@ -148,7 +149,7 @@ class PlainMailer extends Mailer {
final int maxBuf = 1024;
byte[] buf = new byte[maxBuf];
- try (FileInputStream finstr = new FileInputStream(file);
+ try (InputStream finstr = Files.newInputStream(file.toPath());
BufferedInputStream in = new BufferedInputStream(finstr, buf.length)) {
while ((length = in.read(buf)) != -1) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/email/UUMailer.java b/src/main/org/apache/tools/ant/taskdefs/email/UUMailer.java
index 03af6783c..0b61ecd90 100644
--- a/src/main/org/apache/tools/ant/taskdefs/email/UUMailer.java
+++ b/src/main/org/apache/tools/ant/taskdefs/email/UUMailer.java
@@ -19,9 +19,10 @@ package org.apache.tools.ant.taskdefs.email;
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.UUEncoder;
@@ -40,7 +41,7 @@ class UUMailer extends PlainMailer {
+ "readable.");
}
- try (FileInputStream finstr = new FileInputStream(file);
+ try (InputStream finstr = Files.newInputStream(file.toPath());
BufferedInputStream in = new BufferedInputStream(finstr)) {
UUEncoder encoder = new UUEncoder(file.getName());
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/EchoProperties.java b/src/main/org/apache/tools/ant/taskdefs/optional/EchoProperties.java
index 30bcc759c..f6681f8b1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/EchoProperties.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/EchoProperties.java
@@ -19,13 +19,13 @@ package org.apache.tools.ant.taskdefs.optional;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -290,9 +290,9 @@ public class EchoProperties extends Task {
return;
}
- FileInputStream in = null;
+ InputStream in = null;
try {
- in = new FileInputStream(inFile);
+ in = Files.newInputStream(inFile.toPath());
Properties props = new Properties();
props.load(in);
allProps.putAll(props);
@@ -352,7 +352,7 @@ public class EchoProperties extends Task {
}
return;
}
- os = new FileOutputStream(this.destfile);
+ os = Files.newOutputStream(this.destfile.toPath());
saveProperties(allProps, os);
}
} catch (IOException ioe) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java b/src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java
index 9ad9feba1..5a3c215cf 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java
@@ -21,10 +21,10 @@ package org.apache.tools.ant.taskdefs.optional;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
@@ -192,15 +192,15 @@ public class PropertyFile extends Task {
if (propertyfile.exists()) {
log("Updating property file: "
+ propertyfile.getAbsolutePath());
- try (FileInputStream fis = new FileInputStream(propertyfile);
+ try (InputStream fis = Files.newInputStream(propertyfile.toPath());
BufferedInputStream bis = new BufferedInputStream(fis)) {
properties.load(bis);
}
} else {
log("Creating new property file: "
+ propertyfile.getAbsolutePath());
- try (FileOutputStream out =
- new FileOutputStream(propertyfile.getAbsolutePath())) {
+ try (OutputStream out =
+ Files.newOutputStream(propertyfile.toPath())) {
out.flush();
}
}
@@ -249,7 +249,7 @@ public class PropertyFile extends Task {
throw new BuildException(x, getLocation());
}
try {
- OutputStream os = new FileOutputStream(propertyfile); //NOSONAR
+ OutputStream os = Files.newOutputStream(propertyfile.toPath()); //NOSONAR
try {
try {
os.write(baos.toByteArray());
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
index 40b7b5d99..f5357bb9d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
@@ -20,8 +20,6 @@ package org.apache.tools.ant.taskdefs.optional;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -29,6 +27,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -356,8 +355,8 @@ public class ReplaceRegExp extends Task {
try {
boolean changes = false;
- try (InputStream is = new FileInputStream(f);
- OutputStream os = new FileOutputStream(temp)) {
+ try (InputStream is = Files.newInputStream(f.toPath());
+ OutputStream os = Files.newOutputStream(temp.toPath())) {
Reader r = null;
Writer w = null;
try {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/Rpm.java b/src/main/org/apache/tools/ant/taskdefs/optional/Rpm.java
index 765841d60..d1e945cf6 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/Rpm.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/Rpm.java
@@ -19,10 +19,10 @@ package org.apache.tools.ant.taskdefs.optional;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
import java.util.Map;
import org.apache.tools.ant.BuildException;
@@ -149,9 +149,9 @@ public class Rpm extends Task {
}
} else {
if (output != null) {
- FileOutputStream fos = null;
+ OutputStream fos = null;
try {
- fos = new FileOutputStream(output); //NOSONAR
+ fos = Files.newOutputStream(output.toPath()); //NOSONAR
BufferedOutputStream bos = new BufferedOutputStream(fos);
outputstream = new PrintStream(bos);
} catch (IOException e) {
@@ -164,9 +164,9 @@ public class Rpm extends Task {
outputstream = new LogOutputStream(this, Project.MSG_DEBUG);
}
if (error != null) {
- FileOutputStream fos = null;
+ OutputStream fos = null;
try {
- fos = new FileOutputStream(error);
+ fos = Files.newOutputStream(error.toPath());
BufferedOutputStream bos = new BufferedOutputStream(fos);
errorstream = new PrintStream(bos);
} catch (IOException e) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java b/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
index f2fcd9a1b..f5a6717fd 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
@@ -21,13 +21,12 @@ package org.apache.tools.ant.taskdefs.optional;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.net.URL;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
@@ -191,8 +190,8 @@ public class TraXLiaison implements XSLTLiaison4, ErrorListener, XSLTLoggerAware
InputStream fis = null;
OutputStream fos = null;
try {
- fis = new BufferedInputStream(new FileInputStream(infile));
- fos = new BufferedOutputStream(new FileOutputStream(outfile));
+ fis = new BufferedInputStream(Files.newInputStream(infile.toPath()));
+ fos = new BufferedOutputStream(Files.newOutputStream(outfile.toPath()));
final StreamResult res = new StreamResult(fos);
// not sure what could be the need of this...
res.setSystemId(JAXPUtils.getSystemId(outfile));
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
index 26b49a2bf..8a25341a1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
@@ -18,8 +18,8 @@
package org.apache.tools.ant.taskdefs.optional;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.nio.file.Files;
import java.util.Vector;
import org.apache.tools.ant.AntClassLoader;
@@ -550,7 +550,7 @@ public class XMLValidateTask extends Task {
try {
log("Validating " + afile.getName() + "... ", Project.MSG_VERBOSE);
errorHandler.init(afile);
- InputSource is = new InputSource(new FileInputStream(afile));
+ InputSource is = new InputSource(Files.newInputStream(afile.toPath()));
String uri = FILE_UTILS.toURI(afile.getAbsolutePath());
is.setSystemId(uri);
xmlReader.parse(is);
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java
index d49095523..8f0a57975 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java
@@ -18,9 +18,10 @@
package org.apache.tools.ant.taskdefs.optional.depend;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
@@ -80,7 +81,7 @@ public class AntAnalyzer extends AbstractAnalyzer {
InputStream inStream = null;
try {
if (container.getName().endsWith(".class")) {
- inStream = new FileInputStream(container.getPath());
+ inStream = Files.newInputStream(Paths.get(container.getPath()));
} else {
zipFile = new ZipFile(container.getPath());
String entryName
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java
index fbb963efc..4401f1cab 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java
@@ -18,8 +18,9 @@
package org.apache.tools.ant.taskdefs.optional.depend;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Stack;
import java.util.Vector;
@@ -130,8 +131,8 @@ public class DirectoryIterator implements ClassFileIterator {
} else {
// we have a file. create a stream for it
- try (FileInputStream inFileStream
- = new FileInputStream(element)) {
+ try (InputStream inFileStream
+ = Files.newInputStream(element.toPath())) {
if (element.getName().endsWith(".class")) {
// create a data input stream from the jar
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java
index 158cba937..a987b92db 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/DescriptorHandler.java
@@ -19,11 +19,10 @@
package org.apache.tools.ant.taskdefs.optional.ejb;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.nio.file.Files;
import java.util.Hashtable;
import org.apache.tools.ant.Project;
@@ -192,8 +191,8 @@ public class DescriptorHandler extends org.xml.sax.HandlerBase {
try {
owningTask.log("Resolved " + publicId + " to local file "
+ dtdFile, Project.MSG_VERBOSE);
- return new InputSource(new FileInputStream(dtdFile));
- } catch (FileNotFoundException ex) {
+ return new InputSource(Files.newInputStream(dtdFile.toPath()));
+ } catch (IOException ex) {
// ignore
}
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java
index 43b923705..7de0ba309 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java
@@ -18,10 +18,9 @@
package org.apache.tools.ant.taskdefs.optional.ejb;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Hashtable;
@@ -327,10 +326,10 @@ public class GenericDeploymentTool implements EJBDeploymentTool {
File inputFile,
String logicalFilename)
throws BuildException {
- FileInputStream iStream = null;
+ InputStream iStream = null;
try {
if (!addedfiles.contains(logicalFilename)) {
- iStream = new FileInputStream(inputFile);
+ iStream = Files.newInputStream(inputFile.toPath());
// Create the zip entry and add it to the jar file
ZipEntry zipEntry = new ZipEntry(logicalFilename.replace('\\', '/'));
jStream.putNextEntry(zipEntry);
@@ -514,7 +513,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool {
*/
protected Hashtable parseEjbFiles(String descriptorFileName, SAXParser saxParser)
throws IOException, SAXException {
- FileInputStream descriptorStream = null;
+ InputStream descriptorStream = null;
Hashtable ejbFiles = null;
try {
@@ -524,7 +523,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool {
* get hold of all the classfile names for the descriptor.
*/
descriptorStream
- = new FileInputStream(new File(config.descriptorDir, descriptorFileName));
+ = Files.newInputStream(new File(config.descriptorDir, descriptorFileName).toPath());
saxParser.parse(new InputSource(descriptorStream), handler);
ejbFiles = handler.getFiles();
@@ -776,7 +775,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool {
try {
File manifestFile = (File) files.get(MANIFEST);
if (manifestFile != null && manifestFile.exists()) {
- in = new FileInputStream(manifestFile);
+ in = Files.newInputStream(manifestFile.toPath());
} else {
String defaultManifest = "/org/apache/tools/ant/defaultManifest.mf";
in = this.getClass().getResourceAsStream(defaultManifest);
@@ -797,7 +796,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool {
// Create the streams necessary to write the jarfile
- jarStream = new JarOutputStream(new FileOutputStream(jarfile), manifest);
+ jarStream = new JarOutputStream(Files.newOutputStream(jarfile.toPath()), manifest);
jarStream.setMethod(JarOutputStream.DEFLATED);
// Loop through all the class files found and add them to the jar
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java
index 76b61ae36..5a6656f4e 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java
@@ -20,10 +20,11 @@ package org.apache.tools.ant.taskdefs.optional.ejb;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -729,7 +730,7 @@ public class IPlanetEjbc {
location = (String) fileDtds.get(publicId);
if (location != null) {
// closed when the InputSource is closed
- inputStream = new FileInputStream(location); //NOSONAR
+ inputStream = Files.newInputStream(Paths.get(location)); //NOSONAR
}
}
} catch (IOException e) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
index 6495e97dd..cc1bd90aa 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
@@ -18,10 +18,9 @@
package org.apache.tools.ant.taskdefs.optional.ejb;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
@@ -496,9 +495,8 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
DescriptorHandler handler
= getWeblogicDescriptorHandler(ejbDescriptor.getParentFile());
- saxParser.parse(new InputSource
- (new FileInputStream(weblogicDD)),
- handler);
+ saxParser.parse(new InputSource(Files.newInputStream(weblogicDD.toPath())),
+ handler);
Hashtable ht = handler.getFiles();
Enumeration e = ht.keys();
@@ -810,7 +808,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
newWLJarFile.delete();
}
- newJarStream = new JarOutputStream(new FileOutputStream(newWLJarFile));
+ newJarStream = new JarOutputStream(Files.newOutputStream(newWLJarFile.toPath()));
newJarStream.setLevel(0);
//Copy files from old weblogic jar
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
index da84f245f..63caf5075 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
@@ -18,9 +18,9 @@
package org.apache.tools.ant.taskdefs.optional.ejb;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
@@ -775,7 +775,7 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
newwasJarFile.delete();
}
- newJarStream = new JarOutputStream(new FileOutputStream(newwasJarFile));
+ newJarStream = new JarOutputStream(Files.newOutputStream(newwasJarFile.toPath()));
newJarStream.setLevel(0);
//Copy files from old websphere jar
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibManifestTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibManifestTask.java
index 401dcfb6a..a5105e24b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibManifestTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibManifestTask.java
@@ -18,8 +18,9 @@
package org.apache.tools.ant.taskdefs.optional.extension;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.jar.Attributes;
@@ -214,9 +215,9 @@ public final class JarLibManifestTask extends Task {
* @throws IOException if error writing file
*/
private void writeManifest(final Manifest manifest) throws IOException {
- FileOutputStream output = null;
+ OutputStream output = null;
try {
- output = new FileOutputStream(destFile);
+ output = Files.newOutputStream(destFile.toPath());
manifest.write(output);
output.flush();
} finally {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java b/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java
index 82731fe9e..685468ad5 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java
@@ -20,11 +20,12 @@ package org.apache.tools.ant.taskdefs.optional.i18n;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
+import java.nio.file.Files;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Vector;
@@ -407,9 +408,9 @@ public class Translate extends MatchingTask {
private void processBundle(final String bundleFile, final int i,
final boolean checkLoaded) throws BuildException {
final File propsFile = getProject().resolveFile(bundleFile + ".properties");
- FileInputStream ins = null;
+ InputStream ins = null;
try {
- ins = new FileInputStream(propsFile);
+ ins = Files.newInputStream(propsFile.toPath());
loaded = true;
bundleLastModified[i] = propsFile.lastModified();
log("Using " + propsFile, Project.MSG_DEBUG);
@@ -429,7 +430,7 @@ public class Translate extends MatchingTask {
* Load resourceMap with key value pairs. Values of existing keys
* are not overwritten. Bundle's encoding scheme is used.
*/
- private void loadResourceMap(FileInputStream ins) throws BuildException {
+ private void loadResourceMap(InputStream ins) throws BuildException {
try {
BufferedReader in = null;
InputStreamReader isr = new InputStreamReader(ins, bundleEncoding);
@@ -551,9 +552,9 @@ public class Translate extends MatchingTask {
BufferedWriter out = null;
BufferedReader in = null;
try {
- FileOutputStream fos = new FileOutputStream(dest);
+ OutputStream fos = Files.newOutputStream(dest.toPath());
out = new BufferedWriter(new OutputStreamWriter(fos, destEncoding));
- FileInputStream fis = new FileInputStream(src);
+ InputStream fis = Files.newInputStream(src.toPath());
in = new BufferedReader(new InputStreamReader(fis, srcEncoding));
String line;
LineTokenizer lineTokenizer = new LineTokenizer();
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/image/Image.java b/src/main/org/apache/tools/ant/taskdefs/optional/image/Image.java
index 9b3766e05..5cef00933 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/image/Image.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/image/Image.java
@@ -18,8 +18,9 @@
package org.apache.tools.ant.taskdefs.optional.image;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.Locale;
import java.util.Vector;
@@ -316,9 +317,9 @@ public class Image extends MatchingTask {
newFile.delete();
}
- FileOutputStream stream = null;
+ OutputStream stream = null;
try {
- stream = new FileOutputStream(newFile);
+ stream = Files.newOutputStream(newFile.toPath());
JAI.create("encode", image, stream,
str_encoding.toUpperCase(Locale.ENGLISH),
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/jlink/jlink.java b/src/main/org/apache/tools/ant/taskdefs/optional/jlink/jlink.java
index 5d45cfcc5..4f3cff928 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/jlink/jlink.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/jlink/jlink.java
@@ -24,10 +24,10 @@ package org.apache.tools.ant.taskdefs.optional.jlink;
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Enumeration;
import java.util.Vector;
import java.util.zip.CRC32;
@@ -145,7 +145,7 @@ public class jlink {
* @throws Exception on error.
*/
public void link() throws Exception { //NOSONAR
- ZipOutputStream output = new ZipOutputStream(new FileOutputStream(outfile));
+ ZipOutputStream output = new ZipOutputStream(Files.newOutputStream(Paths.get(outfile)));
if (compression) {
output.setMethod(ZipOutputStream.DEFLATED);
@@ -303,7 +303,7 @@ public class jlink {
// see if the file is in fact a .class file, and determine its actual name.
InputStream input = null;
try {
- input = new FileInputStream(file);
+ input = Files.newInputStream(file.toPath());
String className = ClassNameReader.getClassName(input);
if (className != null) {
@@ -337,7 +337,7 @@ public class jlink {
if (!compress) {
entry.setCrc(calcChecksum(file));
}
- FileInputStream input = new FileInputStream(file);
+ InputStream input = Files.newInputStream(file.toPath());
addToOutputStream(output, input, entry);
}
@@ -422,7 +422,7 @@ public class jlink {
* is not compressed.
*/
private long calcChecksum(File f) throws IOException {
- BufferedInputStream in = new BufferedInputStream(new FileInputStream(f));
+ BufferedInputStream in = new BufferedInputStream(Files.newInputStream(f.toPath()));
return calcChecksum(in);
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
index ca4707458..026412fe6 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
@@ -18,11 +18,11 @@
package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.nio.file.Files;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
@@ -176,7 +176,7 @@ public class AggregateTransformer {
protected void setXmlfile(File xmlfile) throws BuildException {
try {
DocumentBuilder builder = privateDBFactory.newDocumentBuilder();
- try (InputStream in = new FileInputStream(xmlfile)) {
+ try (InputStream in = Files.newInputStream(xmlfile.toPath())) {
Document doc = builder.parse(in);
setXmlDocument(doc);
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java
index f9fbcb0ae..6587b1d1d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java
@@ -20,12 +20,12 @@ package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -378,7 +378,7 @@ public class FormatterElement {
public void write(int b) throws IOException {
synchronized (this) {
if (outputStream == null) {
- outputStream = new BufferedOutputStream(new FileOutputStream(file));
+ outputStream = new BufferedOutputStream(Files.newOutputStream(file.toPath()));
}
}
outputStream.write(b);
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
index 6a69d2396..dcb2a98d4 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
@@ -21,7 +21,6 @@ package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
@@ -29,6 +28,7 @@ import java.io.OutputStream;
import java.io.PrintStream;
import java.lang.reflect.Constructor;
import java.net.URL;
+import java.nio.file.Files;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
@@ -1243,7 +1243,7 @@ public class JUnitTask extends Task {
props.put(key, p.get(key));
}
try {
- final FileOutputStream outstream = new FileOutputStream(propsFile);
+ final OutputStream outstream = Files.newOutputStream(propsFile.toPath());
props.store(outstream, "Ant JUnitTask generated properties file");
outstream.close();
} catch (final java.io.IOException e) {
@@ -1953,7 +1953,7 @@ public class JUnitTask extends Task {
final File outFile = getOutput(fe, test);
if (outFile != null) {
try {
- out = new FileOutputStream(outFile);
+ out = Files.newOutputStream(outFile.toPath());
} catch (final IOException e) {
// ignore
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
index c7d39e096..ea7524da8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
@@ -22,15 +22,17 @@ import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.StringReader;
import java.io.StringWriter;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
@@ -940,8 +942,8 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR
System.exit(ERRORS);
}
} else if (args[i].startsWith(Constants.PROPSFILE)) {
- final FileInputStream in = new FileInputStream(args[i]
- .substring(Constants.PROPSFILE.length()));
+ final InputStream in = Files.newInputStream(Paths.get(args[i]
+ .substring(Constants.PROPSFILE.length())));
props.load(in);
in.close();
} else if (args[i].startsWith(Constants.SHOWOUTPUT)) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java
index 97e2647bc..92e3553b8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java
@@ -19,11 +19,11 @@ package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Vector;
@@ -213,7 +213,7 @@ public class XMLResultAggregator extends Task implements XMLConstants {
* @throws IOException thrown if there is an error while writing the content.
*/
protected void writeDOMTree(Document doc, File file) throws IOException {
- try (OutputStream os = new FileOutputStream(file);
+ try (OutputStream os = Files.newOutputStream(file.toPath());
PrintWriter wri = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(os), "UTF8"))) {
wri.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
(new DOMElementWriter()).write(doc.getDocumentElement(), wri, 0, " ");
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/native2ascii/BuiltinNative2Ascii.java b/src/main/org/apache/tools/ant/taskdefs/optional/native2ascii/BuiltinNative2Ascii.java
index 36e46c314..244b8c140 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/native2ascii/BuiltinNative2Ascii.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/native2ascii/BuiltinNative2Ascii.java
@@ -20,14 +20,13 @@ package org.apache.tools.ant.taskdefs.optional.native2ascii;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.optional.Native2Ascii;
@@ -61,7 +60,7 @@ public class BuiltinNative2Ascii implements Native2AsciiAdapter {
boolean reverse) throws IOException {
if (!reverse && encoding != null) {
return new BufferedReader(new InputStreamReader(
- new FileInputStream(srcFile), encoding));
+ Files.newInputStream(srcFile.toPath()), encoding));
}
return new BufferedReader(new FileReader(srcFile));
}
@@ -73,7 +72,7 @@ public class BuiltinNative2Ascii implements Native2AsciiAdapter {
}
if (encoding != null) {
return new BufferedWriter(
- new OutputStreamWriter(new FileOutputStream(destFile),
+ new OutputStreamWriter(Files.newOutputStream(destFile.toPath()),
encoding));
}
return new BufferedWriter(new FileWriter(destFile));
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
index b78370657..a9d079c2e 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
@@ -21,12 +21,11 @@ import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
@@ -1957,7 +1956,7 @@ public class FTP extends Task implements FTPTaskConfig {
// create a local temporary file
FILE_UTILS.createNewFile(tempFile);
long localTimeStamp = tempFile.lastModified();
- BufferedInputStream instream = new BufferedInputStream(new FileInputStream(tempFile));
+ BufferedInputStream instream = new BufferedInputStream(Files.newInputStream(tempFile.toPath()));
ftp.storeFile(tempFile.getName(), instream);
instream.close();
boolean success = FTPReply.isPositiveCompletion(ftp.getReplyCode());
@@ -2148,7 +2147,7 @@ public class FTP extends Task implements FTPTaskConfig {
log("transferring " + file.getAbsolutePath());
}
- instream = new BufferedInputStream(new FileInputStream(file));
+ instream = new BufferedInputStream(Files.newInputStream(file.toPath()));
createParents(ftp, filename);
@@ -2278,7 +2277,7 @@ public class FTP extends Task implements FTPTaskConfig {
if (!pdir.exists()) {
pdir.mkdirs();
}
- outstream = new BufferedOutputStream(new FileOutputStream(file));
+ outstream = new BufferedOutputStream(Files.newOutputStream(file.toPath()));
ftp.retrieveFile(resolveFile(filename), outstream);
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java
index 6cb79c833..35f01b355 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java
@@ -21,12 +21,11 @@ import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
@@ -1346,7 +1345,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror {
// create a local temporary file
FILE_UTILS.createNewFile(tempFile);
long localTimeStamp = tempFile.lastModified();
- BufferedInputStream instream = new BufferedInputStream(new FileInputStream(tempFile));
+ BufferedInputStream instream = new BufferedInputStream(Files.newInputStream(tempFile.toPath()));
ftp.storeFile(tempFile.getName(), instream);
instream.close();
boolean success = FTPReply.isPositiveCompletion(ftp.getReplyCode());
@@ -1535,7 +1534,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror {
task.log("transferring " + file.getAbsolutePath());
}
- instream = new BufferedInputStream(new FileInputStream(file));
+ instream = new BufferedInputStream(Files.newInputStream(file.toPath()));
createParents(ftp, filename);
@@ -1666,7 +1665,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror {
if (!pdir.exists()) {
pdir.mkdirs();
}
- outstream = new BufferedOutputStream(new FileOutputStream(file));
+ outstream = new BufferedOutputStream(Files.newOutputStream(file.toPath()));
ftp.retrieveFile(resolveFile(filename), outstream);
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/pvcs/Pvcs.java b/src/main/org/apache/tools/ant/taskdefs/optional/pvcs/Pvcs.java
index dd6016a8c..7bcfef93b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/pvcs/Pvcs.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/pvcs/Pvcs.java
@@ -21,10 +21,11 @@ import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.text.MessageFormat;
import java.text.ParseException;
import java.util.Enumeration;
@@ -198,7 +199,7 @@ public class Pvcs extends org.apache.tools.ant.Task {
try {
Random rand = new Random(System.currentTimeMillis());
tmp = new File("pvcs_ant_" + rand.nextLong() + ".log");
- FileOutputStream fos = new FileOutputStream(tmp);
+ OutputStream fos = Files.newOutputStream(tmp.toPath());
tmp2 = new File("pvcs_ant_" + rand.nextLong() + ".log");
log(commandLine.describeCommand(), Project.MSG_VERBOSE);
try {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java
index 7d497098c..394200335 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java
@@ -22,13 +22,13 @@ import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.StringReader;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -360,7 +360,7 @@ public class SSHExec extends SSHBase {
InputStream istream = null;
if (inputFile != null) {
try {
- istream = new FileInputStream(inputFile);
+ istream = Files.newInputStream(inputFile.toPath());
} catch (final IOException e) {
// because we checked the existence before, this one
// shouldn't happen What if the file exists, but there
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java
index b6b9b01b7..8775c1190 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java
@@ -21,10 +21,10 @@ package org.apache.tools.ant.taskdefs.optional.ssh;
import java.io.ByteArrayOutputStream;
import java.io.EOFException;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import org.apache.tools.ant.util.FileUtils;
@@ -262,7 +262,7 @@ public class ScpFromMessage extends AbstractSshMessage {
sendAck(out);
// read a content of lfile
- final FileOutputStream fos = new FileOutputStream(localFile);
+ final OutputStream fos = Files.newOutputStream(localFile.toPath());
int length;
long totalLength = 0;
final long startTime = System.currentTimeMillis();
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java
index 7b0a0f29f..214dd4ea1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java
@@ -19,10 +19,10 @@
package org.apache.tools.ant.taskdefs.optional.ssh;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.Iterator;
import java.util.List;
@@ -363,7 +363,7 @@ public class ScpToMessage extends AbstractSshMessage {
waitForAck(in);
// send a content of lfile
- final FileInputStream fis = new FileInputStream(localFile);
+ final InputStream fis = Files.newInputStream(localFile.toPath());
final byte[] buf = new byte[BUFFER_SIZE];
final long startTime = System.currentTimeMillis();
long totalLength = 0;
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
index e83c0b6b5..a45b74ffb 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
@@ -32,12 +32,12 @@ package org.apache.tools.ant.taskdefs.optional.unix;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
@@ -437,7 +437,7 @@ public class Symlink extends DispatchTask {
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(
- new FileOutputStream(new File(dir, linkFileName)));
+ Files.newOutputStream(new File(dir, linkFileName).toPath()));
properties.store(bos, "Symlinks from " + dir);
} catch (IOException ioe) {
throw new BuildException(ioe, getLocation());
@@ -567,7 +567,7 @@ public class Symlink extends DispatchTask {
Properties lnks = new Properties();
InputStream is = null;
try {
- is = new BufferedInputStream(new FileInputStream(inc));
+ is = new BufferedInputStream(Files.newInputStream(inc.toPath()));
lnks.load(is);
pf = pf.getCanonicalFile();
} catch (FileNotFoundException fnfe) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/xz/Unxz.java b/src/main/org/apache/tools/ant/taskdefs/optional/xz/Unxz.java
index a98ae6d2c..f55fb7c3b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/xz/Unxz.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/xz/Unxz.java
@@ -18,9 +18,10 @@
package org.apache.tools.ant.taskdefs.optional.xz;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Unpack;
@@ -57,11 +58,11 @@ public class Unxz extends Unpack {
log("Expanding " + srcResource.getName() + " to "
+ dest.getAbsolutePath());
- FileOutputStream out = null;
+ OutputStream out = null;
XZInputStream zIn = null;
InputStream fis = null;
try {
- out = new FileOutputStream(dest);
+ out = Files.newOutputStream(dest.toPath());
fis = srcResource.getInputStream();
zIn = new XZInputStream(fis);
byte[] buffer = new byte[BUFFER_SIZE];
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/xz/Xz.java b/src/main/org/apache/tools/ant/taskdefs/optional/xz/Xz.java
index d88f91052..76031921c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/xz/Xz.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/xz/Xz.java
@@ -19,8 +19,8 @@
package org.apache.tools.ant.taskdefs.optional.xz;
import java.io.BufferedOutputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils;
@@ -44,7 +44,7 @@ public class Xz extends Pack {
protected void pack() {
XZOutputStream zOut = null;
try {
- zOut = new XZOutputStream(new FileOutputStream(zipFile),
+ zOut = new XZOutputStream(Files.newOutputStream(zipFile.toPath()),
new LZMA2Options());
zipResource(getSrcResource(), zOut);
} catch (IOException ioe) {
diff --git a/src/main/org/apache/tools/ant/types/FilterSet.java b/src/main/org/apache/tools/ant/types/FilterSet.java
index 2c1f2e71b..4ff318128 100644
--- a/src/main/org/apache/tools/ant/types/FilterSet.java
+++ b/src/main/org/apache/tools/ant/types/FilterSet.java
@@ -18,7 +18,8 @@
package org.apache.tools.ant.types;
import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Map;
@@ -367,10 +368,10 @@ public class FilterSet extends DataType implements Cloneable {
}
if (filtersFile.isFile()) {
log("Reading filters from " + filtersFile, Project.MSG_VERBOSE);
- FileInputStream in = null;
+ InputStream in = null;
try {
Properties props = new Properties();
- in = new FileInputStream(filtersFile);
+ in = Files.newInputStream(filtersFile.toPath());
props.load(in);
Enumeration<?> e = props.propertyNames();
diff --git a/src/main/org/apache/tools/ant/types/XMLCatalog.java b/src/main/org/apache/tools/ant/types/XMLCatalog.java
index 2edd5a136..9281d5d2d 100644
--- a/src/main/org/apache/tools/ant/types/XMLCatalog.java
+++ b/src/main/org/apache/tools/ant/types/XMLCatalog.java
@@ -19,13 +19,13 @@
package org.apache.tools.ant.types;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
+import java.nio.file.Files;
import java.util.Stack;
import java.util.Vector;
@@ -677,7 +677,7 @@ public class XMLCatalog extends DataType
File resFile = new File(fileName);
if (resFile.exists() && resFile.canRead()) {
try {
- source = new InputSource(new FileInputStream(resFile));
+ source = new InputSource(Files.newInputStream(resFile.toPath()));
String sysid = JAXPUtils.getSystemId(resFile);
source.setSystemId(sysid);
log("catalog entry matched a readable file: '"
diff --git a/src/main/org/apache/tools/ant/types/resources/FileResource.java b/src/main/org/apache/tools/ant/types/resources/FileResource.java
index e9679075c..d4278886f 100644
--- a/src/main/org/apache/tools/ant/types/resources/FileResource.java
+++ b/src/main/org/apache/tools/ant/types/resources/FileResource.java
@@ -18,11 +18,10 @@
package org.apache.tools.ant.types.resources;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.file.Files;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -216,7 +215,7 @@ public class FileResource extends Resource implements Touchable, FileProvider,
public InputStream getInputStream() throws IOException {
return isReference()
? ((Resource) getCheckedRef()).getInputStream()
- : new FileInputStream(getNotNullFile());
+ : Files.newInputStream(getNotNullFile().toPath());
}
/**
@@ -256,7 +255,7 @@ public class FileResource extends Resource implements Touchable, FileProvider,
p.mkdirs();
}
}
- return append ? new FileOutputStream(f.getAbsolutePath(), true) : new FileOutputStream(f);
+ return FileUtils.newOutputStream(f.toPath(), append);
}
/**
diff --git a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ChecksumAlgorithm.java b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ChecksumAlgorithm.java
index 210d5dc97..26c694590 100644
--- a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ChecksumAlgorithm.java
+++ b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ChecksumAlgorithm.java
@@ -20,7 +20,8 @@ package org.apache.tools.ant.types.selectors.modifiedselector;
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.file.Files;
import java.security.NoSuchAlgorithmException;
import java.util.Locale;
import java.util.zip.Adler32;
@@ -121,7 +122,7 @@ public class ChecksumAlgorithm implements Algorithm {
try {
if (file.canRead()) {
checksum.reset();
- FileInputStream fis = new FileInputStream(file);
+ InputStream fis = Files.newInputStream(file.toPath());
CheckedInputStream check = new CheckedInputStream(fis, checksum);
BufferedInputStream in = new BufferedInputStream(check);
while (in.read() != -1) {
diff --git a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java
index 085b4fe75..962414539 100644
--- a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java
+++ b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java
@@ -20,7 +20,8 @@ package org.apache.tools.ant.types.selectors.modifiedselector;
import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.file.Files;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -158,12 +159,12 @@ public class DigestAlgorithm implements Algorithm {
if (!file.canRead()) {
return null;
}
- FileInputStream fis = null;
+ InputStream fis = null;
byte[] buf = new byte[readBufferSize];
try {
messageDigest.reset();
- fis = new FileInputStream(file);
+ fis = Files.newInputStream(file.toPath());
DigestInputStream dis = new DigestInputStream(fis,
messageDigest);
while (dis.read(buf, 0, readBufferSize) != -1) {
diff --git a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java
index e8cf3fea4..2a16d1fc6 100644
--- a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java
+++ b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java
@@ -22,8 +22,9 @@ package org.apache.tools.ant.types.selectors.modifiedselector;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Properties;
@@ -133,7 +134,7 @@ public class PropertiesfileCache implements Cache {
if ((cachefile != null) && cachefile.isFile() && cachefile.canRead()) {
try {
BufferedInputStream bis = new BufferedInputStream(
- new FileInputStream(cachefile));
+ Files.newInputStream(cachefile.toPath()));
cache.load(bis);
bis.close();
} catch (Exception e) {
@@ -159,7 +160,7 @@ public class PropertiesfileCache implements Cache {
if ((cachefile != null) && cache.propertyNames().hasMoreElements()) {
try {
BufferedOutputStream bos = new BufferedOutputStream(
- new FileOutputStream(cachefile));
+ Files.newOutputStream(cachefile.toPath()));
cache.store(bos, null);
bos.flush();
bos.close();
diff --git a/src/main/org/apache/tools/ant/util/ConcatFileInputStream.java b/src/main/org/apache/tools/ant/util/ConcatFileInputStream.java
index 22dcb7fb6..ff0111e45 100644
--- a/src/main/org/apache/tools/ant/util/ConcatFileInputStream.java
+++ b/src/main/org/apache/tools/ant/util/ConcatFileInputStream.java
@@ -20,9 +20,9 @@ package org.apache.tools.ant.util;
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectComponent;
@@ -119,7 +119,7 @@ public class ConcatFileInputStream extends InputStream {
log("Opening " + file[index], Project.MSG_VERBOSE);
try {
currentStream = new BufferedInputStream(
- new FileInputStream(file[index]));
+ Files.newInputStream(file[index].toPath()));
} catch (IOException eyeOhEx) {
log("Failed to open " + file[index], Project.MSG_ERR);
throw eyeOhEx;
diff --git a/src/main/org/apache/tools/ant/util/FileUtils.java b/src/main/org/apache/tools/ant/util/FileUtils.java
index 0c314b20c..11ae06b7d 100644
--- a/src/main/org/apache/tools/ant/util/FileUtils.java
+++ b/src/main/org/apache/tools/ant/util/FileUtils.java
@@ -31,6 +31,9 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.channels.Channel;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardOpenOption;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -1707,4 +1710,20 @@ public class FileUtils {
close(is);
}
}
+
+ /**
+ * Opens a new OutputStream for the given Path.
+ * @param path the path of the file
+ * @param whether to append to or a replace an existing file
+ * @return a stream ready to write to the file
+ * @since Ant 1.10.2
+ */
+ public static OutputStream newOutputStream(Path path, boolean append) throws IOException {
+ if (append) {
+ return Files.newOutputStream(path, StandardOpenOption.CREATE, StandardOpenOption.APPEND,
+ StandardOpenOption.WRITE);
+ } else {
+ return Files.newOutputStream(path);
+ }
+ }
}
diff --git a/src/main/org/apache/tools/ant/util/LayoutPreservingProperties.java b/src/main/org/apache/tools/ant/util/LayoutPreservingProperties.java
index eceb9a0b2..853bec24b 100644
--- a/src/main/org/apache/tools/ant/util/LayoutPreservingProperties.java
+++ b/src/main/org/apache/tools/ant/util/LayoutPreservingProperties.java
@@ -20,7 +20,6 @@ package org.apache.tools.ant.util;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -28,6 +27,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PushbackReader;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -250,7 +250,7 @@ public class LayoutPreservingProperties extends Properties {
* @param dest the file to write to
*/
public void saveAs(final File dest) throws IOException {
- final FileOutputStream fos = new FileOutputStream(dest);
+ final OutputStream fos = Files.newOutputStream(dest.toPath());
store(fos, null);
fos.close();
}
diff --git a/src/main/org/apache/tools/ant/util/LazyFileOutputStream.java b/src/main/org/apache/tools/ant/util/LazyFileOutputStream.java
index 7e5bf7863..781d0c715 100644
--- a/src/main/org/apache/tools/ant/util/LazyFileOutputStream.java
+++ b/src/main/org/apache/tools/ant/util/LazyFileOutputStream.java
@@ -18,9 +18,9 @@
package org.apache.tools.ant.util;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import org.apache.tools.ant.util.FileUtils;
/**
* Class that delays opening the output file until the first bytes
@@ -31,7 +31,7 @@ import java.io.OutputStream;
*/
public class LazyFileOutputStream extends OutputStream {
- private FileOutputStream fos;
+ private OutputStream fos;
private File file;
private boolean append;
private boolean alwaysCreate;
@@ -155,7 +155,7 @@ public class LazyFileOutputStream extends OutputStream {
}
if (!opened) {
- fos = new FileOutputStream(file.getAbsolutePath(), append);
+ fos = FileUtils.newOutputStream(file.toPath(), append);
opened = true;
}
}
diff --git a/src/main/org/apache/tools/ant/util/ResourceUtils.java b/src/main/org/apache/tools/ant/util/ResourceUtils.java
index 518ed5ad5..c4532a7ec 100644
--- a/src/main/org/apache/tools/ant/util/ResourceUtils.java
+++ b/src/main/org/apache/tools/ant/util/ResourceUtils.java
@@ -21,8 +21,6 @@ import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -30,6 +28,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.nio.channels.FileChannel;
+import java.nio.file.StandardOpenOption;
import java.util.Arrays;
import java.util.Vector;
@@ -777,17 +776,13 @@ public class ResourceUtils {
+ " for " + destFile);
}
- FileInputStream in = null;
- FileOutputStream out = null;
FileChannel srcChannel = null;
FileChannel destChannel = null;
try {
- in = new FileInputStream(sourceFile);
- out = new FileOutputStream(destFile);
-
- srcChannel = in.getChannel();
- destChannel = out.getChannel();
+ srcChannel = FileChannel.open(sourceFile.toPath(), StandardOpenOption.READ);
+ destChannel = FileChannel.open(destFile.toPath(), StandardOpenOption.CREATE,
+ StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE);
long position = 0;
final long count = srcChannel.size();
@@ -799,8 +794,6 @@ public class ResourceUtils {
} finally {
FileUtils.close(srcChannel);
FileUtils.close(destChannel);
- FileUtils.close(out);
- FileUtils.close(in);
}
}
diff --git a/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java b/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java
index f2b601710..476526864 100644
--- a/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java
+++ b/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java
@@ -19,13 +19,12 @@ package org.apache.tools.ant.util;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.Charset;
+import java.nio.file.Files;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -233,8 +232,8 @@ public abstract class ScriptRunnerBase {
InputStream in = null;
try {
- in = new FileInputStream(file);
- } catch (FileNotFoundException e) {
+ in = Files.newInputStream(file.toPath());
+ } catch (IOException e) {
//this can only happen if the file got deleted a short moment ago
throw new BuildException("file " + filename + " not found.");
}
diff --git a/src/main/org/apache/tools/zip/ZipOutputStream.java b/src/main/org/apache/tools/zip/ZipOutputStream.java
index 228ce614f..23f4eacaf 100644
--- a/src/main/org/apache/tools/zip/ZipOutputStream.java
+++ b/src/main/org/apache/tools/zip/ZipOutputStream.java
@@ -31,12 +31,12 @@ import static org.apache.tools.zip.ZipShort.putShort;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
+import java.nio.file.Files;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
@@ -355,7 +355,7 @@ public class ZipOutputStream extends FilterOutputStream {
}
_raf = null;
}
- out = new FileOutputStream(file);
+ out = Files.newOutputStream(file.toPath());
}
raf = _raf;
}