在学习了java IO 的基本理论之后做如下总结:
1、java的IO操作分为字节流和字符流两种方式。字节流可以传输任意类型的文件,而字符流只可以传输文本类型的文件(字符)。在大多数场景下,能用字符流传输文件的就不需要使用字节流,原因是字符流的读写效率更高一些。
2、用作读写二进制数据的根类是FileInputStream和FileOutputStream,都是抽象类。具有如下子类:
AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream
4、OutputStream常用方法
outputstream.png
CopyImage.java
package output;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyImage {
public static void main(String[] args) throws IOException {
//找到目标文件
File inFile = new File("C:\\Users\\wsl\\Desktop\\management.png");
File destFile = new File("C:\\Users\\wsl\\Desktop\\1.png");
//建立数据的输入输出通道
FileInputStream fileInputStream = new FileInputStream(inFile);
FileOutputStream fileOutputStream = new FileOutputStream(destFile); //追加数据....
//每新创建一个FileOutputStream的时候,默认情况下FileOutputStream 的指针是指向了文件的开始的位置。 每写出一次,指向都会出现相应移动。
//建立缓冲数据,边读边写
byte[] buf = new byte[1024];
int length = 0 ;
while((length = fileInputStream.read(buf))!=-1){
fileOutputStream.write(buf,0,length); //写出很多次数据,所以就必须要追加。
}
//关闭资源 原则: 先开后关,后开先关。
fileOutputStream.close();
fileInputStream.close();
}
}
网友评论