java 常用IO操作
java中有关IO操作的API太多了,而且因为历史原因,有些api已经被废弃,有时不免让一些初学者比较迷糊,今天抽时间整理了我平时常用的流操作,分享出来,如果有写错的地方,还请大家指正,因为大部分方法都写了注释,所以main中的测试代码就不写注释了.
对于理论性的资料大家可参阅http://topic.csdn.net/u/20080619/10/30ead5c6-8410-46c4-b9a1-f14522983eac.html,如果大家对理论已经有所认知,正需要动手操作的话下面的代码正适合你.
view plaincopy to clipboardprint?
package com.syj.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
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.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.Arrays;
/**
* <p>
* Title:IO工具类
* </p>
*
* <p>
* Description:常用的IO操作封装
* </p>
*
* <p>
* Copyright: 转载请注明出处http://blog.csdn.net/sunyujia/
* </p>
*
* @author 孙钰佳
* @main sunyujia@yahoo.cn
* @date Jun 15, 2008 4:37:58 PM
*/
public class IOUtil {
/**
* 缓冲区大小 1MB
*/
private static final int BUFFER_SIZE = 1024 * 1024;
/**
*
* Description: 将输入流输出到输出流
*
* @param in
* 输入流
* @param out
* 输出流
* @param bufferSize
* 缓冲区大小
* @throws IOException
* @mail sunyujia@yahoo.cn
* @since:Jun 15, 2008 5:57:24 PM
*/
public static void in2OutStream(InputStream in, OutputStream out,
int bufferSize) throws IOException {
byte[] buffer = new byte[bufferSize];// 缓冲区
for (int bytesRead = 0; (bytesRead = in.read(buffer)) != -1;) {
out.write(buffer, 0, bytesRead);
Arrays.fill(buffer, (byte) 0);
}
}
/**
*
* Description: 读取文件返回字节数组流
*
* @param file
* 文件
* @return 字节数组流
* @mail sunyujia@yahoo.cn
* @since:Jun 15, 2008 4:52:41 PM
*/
public static ByteArrayOutputStream readFileToByteStream(File file)
throws IOException {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
try {
fis = new FileInputStream(file);
bos = new ByteArrayOutputStream();
in2OutStream(fis, bos, BUFFER_SIZE);
} finally {
if (fis != null)
fis.close();
}
return bos;
}
/**
*
* Description:读取文件返回字节数组
*
* @param file
* 文件
* @return 字节数组
* @throws IOException
* @mail sunyujia@yahoo.cn
* @since:Jun 15, 2008 5:38:50 PM
*/