Java IO流(1)字节流

IO流

分类

1byte = 8 bit 

一切皆为字节:字节流可以读取任意格式的文件

字节输出流

OutputStream:字节输出流

FileOutputStream:文件字节输出流

将数据从内存写到硬盘中

使用

存储原理

字节输出流写多个字节的方法

write有两个重载的方法

在urf-8中,一个中文字符占三个字节,在gbk编码中,一个中文字符占两个字节 

写字节数组的一部分

写入字符串的方法

续写与换行

续写

换行

下图中的错误

"\r\n".getBytes()

字节输入流

InputStream:字节输入流,此抽象类是表示字节输入流的所有类的超类

FileInputStream:文件字节输入流

读取数据

注意将其赋值给变量 len

错误写法

在while条件中已经将指针移动了,在循环体中再次调用就会使指针再次移动,导致错误,所以用一个变量存储读取到的字节数据。

一次读取一个字节读取原理

字节输入流一次读取多个字节

第一种方法

第二种方法 不知道长度使用while循环简化代码

读取多个字节的原理

练习:文件复制

package FileInputStreamTest;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;

public class FileCopyMain {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("C:\\Users\\hpuzjh\\Desktop\\1.jpg");
        FileOutputStream fos = new FileOutputStream("C:\\Users\\hpuzjh\\Desktop\\2.jpg");
        int len = 0;
        byte[] bytes = new byte[1024];
        while ((len = fis.read(bytes))!=-1){
            fos.write(bytes,0,len);
        }
        // 注意先关闭输出流
        fos.close();
        fis.close();
    }
}
发布了369 篇原创文章 · 获赞 74 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_41333844/article/details/103056880