Wrap FileWriter with BufferedWriter for better performance when the write() method is invoked in a loop
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e83a656..452a898 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -453,6 +453,7 @@
 Wolfgang Werner
 Xavier Hanin
 Xavier Witdouck
+Xia Li
 Yohann Roussel
 Yuji Yamano
 Yves Martin
diff --git a/contributors.xml b/contributors.xml
index 3f567e6..febe63c 100644
--- a/contributors.xml
+++ b/contributors.xml
@@ -1864,6 +1864,10 @@
     <last>Witdouck</last>
   </name>
   <name>
+    <first>Xia</first>
+    <last>Li</last>
+  </name>
+  <name>
     <first>Yohann</first>
     <last>Roussel</last>
   </name>
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 fd26bf4..e3c22a5 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
@@ -18,6 +18,7 @@
 
 package org.apache.tools.ant.taskdefs.optional.ssh;
 
+import java.io.BufferedWriter;
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -481,7 +482,7 @@
      */
     private void writeToFile(final String from, final boolean append, final File to)
         throws IOException {
-        try (FileWriter out = new FileWriter(to.getAbsolutePath(), append)) {
+        try (BufferedWriter out = new BufferedWriter(new FileWriter(to.getAbsolutePath(), append))) {
             final StringReader in = new StringReader(from);
             final char[] buffer = new char[BUFFER_SIZE];
             while (true) {