📄 ioutility.java
字号:
///////////////////////////////////////////////////////////////
// InputStream -> byte[]
/**
* Get the contents of an <code>InputStream</code> as a <code>byte[]</code>.
*/
public static byte[] toByteArray(final InputStream input) throws IOException {
return toByteArray(input, DEFAULT_BUFFER_SIZE);
}
/**
* Get the contents of an <code>InputStream</code> as a <code>byte[]</code>.
* @param bufferSize Size of internal buffer to use.
*/
public static byte[] toByteArray(final InputStream input, final int bufferSize) throws IOException {
final ByteArrayOutputStream output = new ByteArrayOutputStream();
copy(input, output, bufferSize);
return output.toByteArray();
}
///////////////////////////////////////////////////////////////
// Derived copy methods
// Reader -> *
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// Reader -> OutputStream
/**
* Serialize chars from a <code>Reader</code> to bytes on an <code>OutputStream</code>, and
* flush the <code>OutputStream</code>.
*/
public static void copy(final Reader input, final OutputStream output) throws IOException {
copy(input, output, DEFAULT_BUFFER_SIZE);
}
/**
* Serialize chars from a <code>Reader</code> to bytes on an <code>OutputStream</code>, and
* flush the <code>OutputStream</code>.
* @param bufferSize Size of internal buffer to use.
*/
public static void copy(final Reader input, final OutputStream output, final int bufferSize) throws IOException {
final OutputStreamWriter out = new OutputStreamWriter(output);
copy(input, out, bufferSize);
// NOTE: Unless anyone is planning on rewriting OutputStreamWriter, we have to flush
// here.
out.flush();
}
///////////////////////////////////////////////////////////////
// Reader -> String
/**
* Get the contents of a <code>Reader</code> as a String.
*/
public static String toString(final Reader input) throws IOException {
return toString(input, DEFAULT_BUFFER_SIZE);
}
/**
* Get the contents of a <code>Reader</code> as a String.
* @param bufferSize Size of internal buffer to use.
*/
public static String toString(final Reader input, final int bufferSize) throws IOException {
final StringWriter sw = new StringWriter();
copy(input, sw, bufferSize);
return sw.toString();
}
///////////////////////////////////////////////////////////////
// Reader -> byte[]
/**
* Get the contents of a <code>Reader</code> as a <code>byte[]</code>.
*/
public static byte[] toByteArray(final Reader input) throws IOException {
return toByteArray(input, DEFAULT_BUFFER_SIZE);
}
/**
* Get the contents of a <code>Reader</code> as a <code>byte[]</code>.
* @param bufferSize Size of internal buffer to use.
*/
public static byte[] toByteArray(final Reader input, final int bufferSize) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
copy(input, output, bufferSize);
return output.toByteArray();
}
///////////////////////////////////////////////////////////////
// Derived copy methods
// String -> *
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// String -> OutputStream
/**
* Serialize chars from a <code>String</code> to bytes on an <code>OutputStream</code>, and
* flush the <code>OutputStream</code>.
*/
public static void copy(final String input, final OutputStream output) throws IOException {
copy(input, output, DEFAULT_BUFFER_SIZE);
}
/**
* Serialize chars from a <code>String</code> to bytes on an <code>OutputStream</code>, and
* flush the <code>OutputStream</code>.
* @param bufferSize Size of internal buffer to use.
*/
public static void copy(final String input, final OutputStream output, final int bufferSize) throws IOException {
final StringReader in = new StringReader(input);
final OutputStreamWriter out = new OutputStreamWriter(output);
copy(in, out, bufferSize);
// NOTE: Unless anyone is planning on rewriting OutputStreamWriter, we have to flush
// here.
out.flush();
}
///////////////////////////////////////////////////////////////
// String -> Writer
/**
* Copy chars from a <code>String</code> to a <code>Writer</code>.
*/
public static void copy(final String input, final Writer output) throws IOException {
output.write(input);
}
/**
* Copy bytes from an <code>InputStream</code> to an
* <code>OutputStream</code>, with buffering.
* This is equivalent to passing a
* {@link java.io.BufferedInputStream} and
* {@link java.io.BufferedOutputStream} to {@link #copy(InputStream, OutputStream)},
* and flushing the output stream afterwards. The streams are not closed
* after the copy.
* @deprecated Buffering streams is actively harmful! See the class description as to why. Use
* {@link #copy(InputStream, OutputStream)} instead.
*/
public static void bufferedCopy(final InputStream input, final OutputStream output) throws IOException {
final BufferedInputStream in = new BufferedInputStream(input);
final BufferedOutputStream out = new BufferedOutputStream(output);
copy(in, out);
out.flush();
}
///////////////////////////////////////////////////////////////
// String -> byte[]
/**
* Get the contents of a <code>String</code> as a <code>byte[]</code>.
*/
public static byte[] toByteArray(final String input) throws IOException {
return toByteArray(input, DEFAULT_BUFFER_SIZE);
}
/**
* Get the contents of a <code>String</code> as a <code>byte[]</code>.
* @param bufferSize Size of internal buffer to use.
*/
public static byte[] toByteArray(final String input, final int bufferSize) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
copy(input, output, bufferSize);
return output.toByteArray();
}
///////////////////////////////////////////////////////////////
// Derived copy methods
// byte[] -> *
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// byte[] -> Writer
/**
* Copy and convert bytes from a <code>byte[]</code> to chars on a
* <code>Writer</code>.
* The platform's default encoding is used for the byte-to-char conversion.
*/
public static void copy(final byte[] input, final Writer output) throws IOException {
copy(input, output, DEFAULT_BUFFER_SIZE);
}
/**
* Copy and convert bytes from a <code>byte[]</code> to chars on a
* <code>Writer</code>.
* The platform's default encoding is used for the byte-to-char conversion.
* @param bufferSize Size of internal buffer to use.
*/
public static void copy(final byte[] input, final Writer output, final int bufferSize) throws IOException {
final ByteArrayInputStream in = new ByteArrayInputStream(input);
copy(in, output, bufferSize);
}
/**
* Copy and convert bytes from a <code>byte[]</code> to chars on a
* <code>Writer</code>, using the specified encoding.
* @param encoding The name of a supported character encoding. See the
* <a href="http://www.iana.org/assignments/character-sets">IANA
* Charset Registry</a> for a list of valid encoding types.
*/
public static void copy(final byte[] input, final Writer output, final String encoding) throws IOException {
final ByteArrayInputStream in = new ByteArrayInputStream(input);
copy(in, output, encoding);
}
/**
* Copy and convert bytes from a <code>byte[]</code> to chars on a
* <code>Writer</code>, using the specified encoding.
* @param encoding The name of a supported character encoding. See the
* <a href="http://www.iana.org/assignments/character-sets">IANA
* Charset Registry</a> for a list of valid encoding types.
* @param bufferSize Size of internal buffer to use.
*/
public static void copy(final byte[] input, final Writer output, final String encoding, final int bufferSize) throws IOException {
final ByteArrayInputStream in = new ByteArrayInputStream(input);
copy(in, output, encoding, bufferSize);
}
///////////////////////////////////////////////////////////////
// byte[] -> String
/**
* Get the contents of a <code>byte[]</code> as a String.
* The platform's default encoding is used for the byte-to-char conversion.
*/
public static String toString(final byte[] input) throws IOException {
return toString(input, DEFAULT_BUFFER_SIZE);
}
/**
* Get the contents of a <code>byte[]</code> as a String.
* The platform's default encoding is used for the byte-to-char conversion.
* @param bufferSize Size of internal buffer to use.
*/
public static String toString(final byte[] input, final int bufferSize) throws IOException {
final StringWriter sw = new StringWriter();
copy(input, sw, bufferSize);
return sw.toString();
}
/**
* Get the contents of a <code>byte[]</code> as a String.
* @param encoding The name of a supported character encoding. See the
* <a href="http://www.iana.org/assignments/character-sets">IANA
* Charset Registry</a> for a list of valid encoding types.
*/
public static String toString(final byte[] input, final String encoding) throws IOException {
return toString(input, encoding, DEFAULT_BUFFER_SIZE);
}
/**
* Get the contents of a <code>byte[]</code> as a String.
* @param encoding The name of a supported character encoding. See the
* <a href="http://www.iana.org/assignments/character-sets">IANA
* Charset Registry</a> for a list of valid encoding types.
* @param bufferSize Size of internal buffer to use.
*/
public static String toString(final byte[] input, final String encoding, final int bufferSize) throws IOException {
final StringWriter sw = new StringWriter();
copy(input, sw, encoding, bufferSize);
return sw.toString();
}
///////////////////////////////////////////////////////////////
// byte[] -> OutputStream
/**
* Copy bytes from a <code>byte[]</code> to an <code>OutputStream</code>.
*/
public static void copy(final byte[] input, final OutputStream output) throws IOException {
copy(input, output, DEFAULT_BUFFER_SIZE);
}
/**
* Copy bytes from a <code>byte[]</code> to an <code>OutputStream</code>.
* @param bufferSize Size of internal buffer to use.
*/
public static void copy(final byte[] input, final OutputStream output, final int bufferSize) throws IOException {
output.write(input);
}
/**
* Copy bytes from a <code>File</code> to an <code>File</code>.
* @param bufferSize Size of internal buffer to use.
*/
public static void copy(final File input, final File output) throws IOException {
FileInputStream fis = new FileInputStream(input);
FileOutputStream fos = new FileOutputStream(output);
copy(fis, fos);
fis.close();
fos.flush();
fos.close();
}
/**
* 将某个目录(srcDir)下的文件、文件夹复制到指定目录(destineDir)中
*
* @param srcDir 要复制的目录
* @param destineDir 要粘帖的目录
* @throws IOException
*/
public static void xcopy(File srcDir, File destineDir) throws IOException {
try {
if (!srcDir.exists() || srcDir.getCanonicalPath().equals(destineDir.getCanonicalPath()))
return;
}
catch (IOException ioexception) {}
if (!destineDir.exists()) {
destineDir.mkdirs();
}
File chs[] = srcDir.listFiles();
for (int i = 0; i < chs.length; i++) {
if (chs[i].isFile()) {
File destineFile = new File(destineDir, chs[i].getName());
copy(chs[i], destineFile);
}
else {
File destine = new File(destineDir, chs[i].getName());
destine.mkdirs();
xcopy(chs[i], destine);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -