利用字节流和字节数组流是实现文件的复制

package ioxuexi;

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.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 利用字节流和字节数组流是实现文件的复制
* @author User
*
*/

public class lianxi17 {
public static void main(String[] args) throws IOException {
byte[] data=get("E:/test/2.txt");
set(data, "e:/test/45.txt");
}
//将目的字节数组放到目标区域
public static void set(byte[] src,String destString) throws IOException{
//创建目的文件源
File destFile=new File(destString);
//利用字节数组输入流录入字节数组
InputStream isInputStream=new BufferedInputStream(new ByteArrayInputStream(src));
//利用字节输出流输出文件
OutputStream bosOutputStream=new BufferedOutputStream(new FileOutputStream(destFile));
//进行操作
byte[] flush=new byte[1024];
int len=0;
while (-1!=(len=isInputStream.read(flush))) {
bosOutputStream.write(flush,0,len);
}
//强制刷出
bosOutputStream.flush();
//关闭文件流,释放资源
isInputStream.close();
bosOutputStream.close();

}
//通过字节流录入和字节数输出将源文件转换为字节数组
public static byte[] get(String pathname) throws IOException {
//创建文件源
File srcFile=new File(pathname);
byte[] dest=null;
//利用字节输入流将目的地址的文件进行录入
InputStream isInputStream=new BufferedInputStream(new FileInputStream(srcFile));
//创建字节数组输出流
ByteArrayOutputStream bosArrayOutputStream=new ByteArrayOutputStream();
//进行字节数组录入
byte[] flush=new byte[1024];
int len=0;
while (-1!=(len=isInputStream.read(flush))) {
bosArrayOutputStream.write(flush,0,len);
}
bosArrayOutputStream.flush();
//关闭文件流,释放资源
isInputStream.close();
bosArrayOutputStream.close();
//返回一个字节数组
return bosArrayOutputStream.toByteArray();

}
}

时间: 2024-10-25 07:49:51

利用字节流和字节数组流是实现文件的复制的相关文章

java基础(IO流---字节流、字符流、字节数组流)

字节流: FileInputStream:通过字节的方式读取文件,适合读取所有类型的文件(图像.视频等),全字符请考虑FileReader FileOutputStream:通过字节的方式写出或追加数据到文件,适合所有类型的文件(图像.视频等),全字符请考虑FileWriter 字符流: FileReader :通过字符的方式读取文件,仅适合字符文件 FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件 字节数组流: ByteArrayInputStream:字节数组输入

Java IO学习笔记(三)转换流、数据流、字节数组流

转换流 1.转换流:将字节流转换成字符流,转换之后就可以一个字符一个字符的往程序写内容了,并且可以调用字符节点流的write(String s)方法,还可以在外面套用BufferedReader()和BufferedWriter,并使用它们的readLine 和 newLine方法. 2.有两种转换流:InputStreamReader.OutputStreamWriter 练习小程序1: package test.io.transfer; import java.io.FileOutputSt

java _io_图片到内存(字节数组),字节数组到文件,练习文件流和字节数组流

//图片读取到字节数组中,字节数组写出到文件 public class test{ public static void main(String[]args) { String path="C:/Users/10853/eclipse-workspace/hell/linux学习路线.png"; byte[] data=toByteArray(path); //图片不能直接到字节数组中,is.read()返回的是int类型的大小,new String是解码 //需要写入字节数组(内存)

Java文件与io——字节数组流数据流字符串流

字节数组流 ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪read方法要提供的下一个字节.关闭ByteArrayInputStream无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException. ByteArrayOutputStream:此类中实现了一个输出流.其中的数据被写入一个byte数组.缓冲区会随着数据的不断写入而自动增长.可使用toByteArray()和toString()获取数据.关闭ByteArra

六、字节数组流ByteArrayInputStream&ByteArrayOutputStream

一.前提 经常而言我们都是针对文件的操作,然后带上缓冲的节点流进行处理,但有时候为了提升效率,我们发现频繁的读写文件并不是太好,那么于是出现了字节数组流,即存放在内存中,因此有称之为内存流: 1.ByteArrayInputStream类 ByteArrayInputStream包含一个内部缓冲区,其中包含可以从流中读取的字节. 内部计数器跟踪由read方法提供的下一个字节. 关闭一个ByteArrayInputStream没有任何效果. 该流中的方法可以在流关闭后调用,而不生成IOExcept

IO(三)IO流之字节流与字节缓冲流(转)

在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字节流. 一.InputStream中的读取数据的方法如下: 1 .int read() 功能:读取一个字节的数据,并且返回读到得数据,如果返回-1,则表示读到输入流的末尾. 2.int read(byte[] b) 功能:从输入流中读取一定量的字节,并将其存储在字节数组b中,返回实际读取的字节数,如果返回-

编码表、字节流、字节缓冲流

概念:     字节流不需要刷新(byte) 字符流需要刷新(char) IO流:input(通过Java程序往内存里读取) output(通过Java程序往硬盘上外写出) 输入输出流 * IO流的分类 *          按照操作的数据不同 *                 字节流:操作字节,由于计算机上一切皆是字节,字节流可以操作一切数据 *                 字符流:操作字符,只能操作文本文件 *                 文本文件:能使用文本工具 打开 看懂的叫做

内存流(字节数组流)ByteArrayInputStream

package org.example.io; import java.io.ByteArrayInputStream;import java.io.IOException; /** * ByteArrayInputStream:在创建对象时传入数组即可,不需要传文件,也没有新增的方法,close()关闭无效 * 流本身就是内存中的资源,流中的内容也是内存中的资源,所以不用手动关闭,内存会给他释放,所以不用关闭流 * 流的内容是内存中的资源,不访问磁盘 */ public class TestB

java——用递归和IO流来实现文件的复制

1 import java.io.ByteArrayInputStream; 2 import java.io.ByteArrayOutputStream; 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.Ou