首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

JAVA惯用IO操作(转)

2012-10-29 
JAVA常用IO操作(转)package com.syj.utilimport java.io.BufferedReaderimport java.io.BufferedWriter

JAVA常用IO操作(转)

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        */        public static byte[] readFileToByteArray(File file) throws IOException {             ByteArrayOutputStream bos = null;             try {                 bos = readFileToByteStream(file);             } finally {                 if (bos != null)                     bos.close();             }             return bos.toByteArray();         }             /**        *         * Description:读取文件内容        *         * @param file        *            文件        * @return String内容        * @throws IOException        * @mail sunyujia@yahoo.cn        * @since:Jun 15, 2008 5:46:32 PM        */        public static String readFileToString(File file) throws IOException {             StringBuffer sb = null;             BufferedReader in = null;             try {                 in = new BufferedReader(new FileReader(file));                 sb = new StringBuffer();                 for (String line; (line = in.readLine()) != null;) {                     sb.append(line + "\r\n");                 }             } finally {                 if (in != null)                     in.close();             }             return sb.toString();         }             /**        *         * Description:复制文件        *         * @param src        *            源文件        * @param dest        *            目标文件        * @param cover        *            是否覆盖        * @throws IOException        * @mail sunyujia@yahoo.cn        * @since:Jun 15, 2008 6:08:28 PM        */        public static void copyFile(File src, File dest, boolean cover)                 throws IOException {             FileInputStream in = null;             FileOutputStream out = null;             try {                 if (!dest.exists()) {                     dest.createNewFile();                 } else if (dest.exists() && cover) {                     dest.delete();                     dest.createNewFile();                 } else {                     return;                 }                 in = new FileInputStream(src);                 out = new FileOutputStream(dest);                 in2OutStream(in, out, BUFFER_SIZE);             } finally {                 try {                     if (in != null)                         in.close();                 } finally {                     if (out != null)                         out.close();                 }             }         }             /**        *         * Description:写文件        *         * @param file        *            文件        * @param str        *            内容        * @throws IOException        * @mail sunyujia@yahoo.cn        * @since:Jun 15, 2008 6:17:24 PM        */        public static void writeFile(File file, String str) throws IOException {             PrintWriter out = null;             BufferedReader in = null;             try {                 if (!file.exists())                     file.createNewFile();                 in = new BufferedReader(new StringReader(str));                 out = new PrintWriter(new BufferedWriter(new FileWriter(file)));                 for (String line; (line = in.readLine()) != null;) {                     out.println(line);                 }             } finally {                 try {                     if (in != null)                         in.close();                 } finally {                     if (out != null)                         out.close();                 }             }         }             /**        *         * Description:从控制台读取一串字符串        *         * @return 读取的字符串        * @throws IOException        * @mail sunyujia@yahoo.cn        * @since:Jun 15, 2008 6:42:29 PM        */        public static String readStringFromSystemIn() throws IOException {             BufferedReader br = new BufferedReader(new InputStreamReader(System.in));             try {                 return br.readLine();             } finally {                 if (br != null)                     br.close();             }         }             /**        *         * Description:当ObjectInputStream对象调用        * readObject();时,会从ByteArrayInputStream流中反序列化出的对象        *         *         * @param bi        * @return        * @throws IOException        * @mail sunyujia@yahoo.cn        * @since:Jun 15, 2008 7:07:53 PM        */        public static ObjectInputStream buildObjectInputStream(                 ByteArrayInputStream bi) throws IOException {             return new ObjectInputStream(bi);         }             /**        *         * Description:当ObjectOutputStream对象调用        * writeObject(o);时,o对象会序列化到ByteArrayOutputStream流中去        *         * @param bos        *            字节数组流        * @return 对象输出流        * @throws IOException        * @mail sunyujia@yahoo.cn        * @since:Jun 15, 2008 7:06:00 PM        */        public static ObjectOutputStream buildObjectOutputStream(                 ByteArrayOutputStream bos) throws IOException {             return new ObjectOutputStream(bos);         }             public static BufferedReader buildBufferedReader(String str) {             return new BufferedReader(new StringReader(str));         }             public static ByteArrayInputStream buildByteArrayInputStream(String str) {             return new ByteArrayInputStream(str.getBytes());         }             public static ByteArrayInputStream buildByteArrayInputStream(byte[] bt) {             return new ByteArrayInputStream(bt);         }             public static void main(String[] args) throws Exception {             byte[] bootFileBytes = IOUtil.readFileToByteArray(new File(                     "C:\\boot.ini"));             System.out.println(new String(bootFileBytes));             String bootFileStr = readFileToString(new File("C:\\boot.ini"));             System.out.println(bootFileStr);             System.out.println(new String(bootFileBytes).equals(bootFileStr));             IOUtil.copyFile(new File("C:\\boot.ini"), new File("C:\\boot1.ini"),                     true);             IOUtil.writeFile(new File("C:\\boot2.ini"), bootFileStr);             ByteArrayOutputStream bos = new ByteArrayOutputStream();             ObjectOutputStream oos = IOUtil.buildObjectOutputStream(bos);             oos.writeObject(new String("abcd"));             ObjectInputStream ois = IOUtil.buildObjectInputStream(IOUtil                     .buildByteArrayInputStream(bos.toByteArray()));             System.out.println(ois.readObject());             System.out.println(IOUtil.readStringFromSystemIn());         }     } 

?

热点排行