|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.lib.cvsclient.file;
import java.io.*;
/**
* @author Thomas Singer
* @version Sep 26, 2001
*/
public class DefaultWriteTextFilePreprocessor
implements WriteTextFilePreprocessor {
private static final int CHUNK_SIZE = 32768;
public void copyTextFileToLocation(InputStream processedInputStream, File fileToWrite) throws IOException {
// Here we read the temp file in again, doing any processing required
// (for example, unzipping). We must not convert the bytes to characters
// because the file may not be written in the current encoding.
// We would corrupt it's content when characters would be written!
InputStream tempInput = null;
OutputStream out = null;
byte[] newLine = System.getProperty("line.separator").getBytes();
try {
tempInput = new BufferedInputStream(processedInputStream);
out = new BufferedOutputStream(new FileOutputStream(fileToWrite));
// this chunk is directly read from the temp file
byte[] cchunk = new byte[CHUNK_SIZE];
for (int readLength = tempInput.read(cchunk);
readLength > 0;
readLength = tempInput.read(cchunk)) {
// we must perform our own newline conversion. The file will
// definitely have unix style CRLF conventions, so if we have
// a \n this code will write out a \n or \r\n as appropriate for
// the platform we are running on
for (int i = 0; i < readLength; i++) {
if (cchunk[i] == '\n') {
out.write(newLine);
}
else {
out.write(cchunk[i]);
}
}
}
}
finally {
if (tempInput != null) {
try {
tempInput.close();
}
catch (IOException ex) {
// ignore
}
}
if (out != null) {
try {
out.close();
}
catch (IOException ex) {
// ignore
}
}
}
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.