字节流和字符流

一、FileInputStream——文件输入字节流

1、构造方法:

(1)public FileInputStream(String name); 通过指定路径创建文件输入流对象。(常用)

 InputStream input = new FileInputStream("test2.txt");

(2)public FileInputStream(File file); 通过指定File对象来创建输入流对象

2、声明方法:

(1)int read(); 读取输入流中字节数据,转换成整数。每读一次,自动获取下一个数据。数据读完后返回-1;

int read=input.read();

(2)int read(byte[] b); 将读取的数据存储在一个字节数组中。

char[] c =new char[1024];
int len=input.read(c);

(3)void close();关闭数据流

input.close();

其中,如果想要一次性读取多个数据,代码实现为

        InputStream input = new FileInputStream("test2.txt");
        //一次性读取多个数据
        //声明一个byte类型数组,用于存储每次读取到的数据,读取的数据个数,取决于数组的长度,长度一般是1024的整数倍
        byte[] n=new byte[1024];

        int read;
        //返回值表示每次获取到的有效数据的个数,如果为-1表名已经读完
        while((read=input.read(n))!=-1){
            //new String(byte[] b,int off,int len)
            System.out.println(new String(n,0,read));
        }
        input.close();
    }

二、FileOutputStream——文件输出字节流

1、构造方法:

(1)public FileOutputStream(String name); 通过指定路径创建文件输出流对象(常用)。true表示在文件中再次写入数据。

FileOutputStream output=new FileOutputStream("text.txt",true);

(2)public FileOutputStream(File file); 通过指定File创建输出流对象

2、声明方法:

(1)void write(); 写入单个数据。其中写入的数据会转换成二进制存储在文件中,当通过某文本或者是某软件打开时,通过ASCLL码转换(0-127),其余通过电脑默认编码转换(gbk)

output.write();

(2)void write(byte[] b ,int off,int len); 写入多个数据。

byte[] b={48,49,50,52};
output.write(b,1,3)//将数组中下标为1到3的字节写入文件

(3)void write(String str); 写入字符串。

String str="吃饭了吗";
output.write(str.getBytes());//String 是一个字符串,方法的传入参数是int类型的字节

(4)void close(); 关闭流

output.close();

三、FileReader——文件输入字符流

1、构造方法:

(1)public FileReader(String name); 通过指定文件路径创建对象

FileReader in=new FileReader("text.txt");

(2)public FileReader(File file); 通过指定文件创建对象

2、声明方法:

(1)int read(); 读取一个字符

int i=in.read();

(2)int read(char[] cbuf); 读取一些字符,存储在字符数组中

(3)void close();


四、FileWriter——文件字符输出流

1、构造方法:

FileWriter out=new FileWriter();

2、方法


五、总结 

字节流(FileInputStream/FileOutputStream)可以用来操作文本文件,图片和视频。

字符流(FileReader/FileWriter)只能用来操作文本文件,当我们单纯读写文本文件时,使用字符流


缓冲流

六、字节缓冲流

1、BufferedOutputStream——字节缓冲输出流

1.1构造方法:

public BufferedOutputStream(OutputStream out); 传递一个输出流对象来创建一个缓冲输出流对象

BufferedInputStream input=new BufferedInputStream(new FileInputStream("D:\\progam\\keyj2205\\test\\test\\11.jpg"));

1.2声明方法:同FileOutputStream

2、BufferedInputStream——字节缓冲输入流

2.1构造方法:

BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream("D:\\progam\\keyj2205\\test\\test\\JJJ.bmp"));

2.2声明方法:同FileInputStream

3、BufferReader——字符缓冲输入流

4、BufferWriter——字符缓冲输出流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值