IO流操作三 : 使用字节数组流实现文件的拷贝
2017-12-29 00:56
399 查看
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * 使用字节数组流实现文件拷贝 * 1、文件 ---> 字节数组 * 2、字节数组 ---> 文件 * @author pence * @date 2017年12月28日 */ public class MyIO3 { public static void main(String[] args) throws IOException { //从文件获取内容并保存到字节数组 byte[] data = getBytesFromFile("C:/software/workspace/workspace/Test/src/test/a.txt"); System.out.println(new String(data,"gbk")); //将字节数组内容写入文件 toFileFromByteArray(data, "C:/software/workspace/workspace/Test/src/test/b.txt"); } /** * 读取字节数组内容输出到文件 * @param src * @param destPah * @throws IOException */ public static void toFileFromByteArray(byte[] src, String destPath) throws IOException{ //1.创建源 File dest = new File(destPath); //2.选择流 InputStream is = new BufferedInputStream(new ByteArrayInputStream(src));//字节数组输入流 OutputStream os = new BufferedOutputStream(new FileOutputStream(dest));//文件输出流 //3.操作 byte[] flash = new byte[1024]; int len = 0; while(-1 != (len=is.read(flash))){ //输出到文件 os.write(flash, 0, len); } os.flush(); //4.关闭流 os.close(); is.close(); } /** * 读取文件内容并输出到字节数组 * @param srcPath * @return * @throws IOException */ public static byte[] getBytesFromFile(String srcPath) throws IOException{ //1.创建源 File src = new File(srcPath); //源文件 byte[] dest = null; //目标数组 //2.选择流 InputStream is = new BufferedInputStream(new FileInputStream(src)); //缓冲字节输入流 ByteArrayOutputStream bos = new ByteArrayOutputStream(); //字节数组输出流 //3.操作 int len = 0; byte[] flash = new byte[1024]; while(-1 != (len=is.read(flash))){ //输出到字节数组 bos.write(flash, 0, len); } bos.flush(); //获取数据 dest = bos.toByteArray(); //此处调用新增方法,故创建对象时不能使用多态 //4.关闭流 bos.close(); is.close(); return dest; } }
相关文章推荐
- Windows编程_Lesson004_项目预备_异步IO操作(使用IOCP实现大文件拷贝的项目)
- Java基础之IO流中使用FileWriter和FileReader实现拷贝文件
- IO流操作实现文件拷贝\简单加密及相关知识点
- IO流操作实现文件拷贝\简单加密及相关知识点
- IO流操作实现文件拷贝\简单加密及相关知识点
- 【C语言】没事可以试试这个小程序,使用文件操作,模拟实现一个简单的文件拷贝工具!
- 使用IO流实现对特殊文件及文件夹中文件拷贝到指定文件中
- IO流的基本操作规律以及利用IO流实现音频文件的切割与合并
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- 通过WMI实现远程创建共享目录,远程拷贝文件等操作
- Java拷贝文件的例子(使用channel实现)
- 学习之使用Java IO 来实现复制文件的操作
- 使用pscp实现Windows 和 linux服务器间远程拷贝文件
- 使用Windows的SHFileOperation外壳函数实现文件操作
- 使用信号灯实现互斥机制的文件写操作
- java 实现 文件操作工具集。包括文件、目录树的拷贝、删除、移动、查找等工具函数
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载