I forgot to add that my comment doesn't mean that the ASCII transfers couldn't be optimized. It's probably better to read the file in big chunks, scan the chunks and translate to another buffer (twice the size to handle the degenerate case of every character being a line feed), and write that buffer. ToNetASCIIOutputStream calls write(int ch) from write(byte[]), which is bad if the underlying output stream isn't buffered. Although ToNetASCIIOutputStream could be improved, the real culprit is FTPClient.__storeFileStream(), which does the following if (__fileType == ASCII_FILE_TYPE) output = new ToNetASCIIOutputStream(output); instead of if (__fileType == ASCII_FILE_TYPE) output = new ToNetASCIIOutputStream(new BufferedOutputStream(output)); FTPClient.__storeFile() doesn't make that mistake. I'll make the change in __storeFileStream(), but some performance testing would be necessary to arrive at appropriate buffer sizes.
daniel --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]