继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

字符流与字节流

萌萌小温柔
关注TA
已关注
手记 306
粉丝 56
获赞 401

1.1 概述
IO流分类:
流向
输入流        读取数据        FileReader        Reader
输出流        写出数据        FileWriter        Writer
数据类型
字节流        
字节输入流   读取数据        InputStream
字节输出流   写出数据        OutputStream
字符流
字符输入流  读取数据        Reader
字符输出流  写出数据        Writer
1.2 利用字符流复制文本文件
利用字符流将当前工程下的IODemo.java拷贝到d盘的a文件夹下
1.2.1 案例代码九

package com.itheima_02;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;/* * 使用字符流复制文本文件 * * 数据源        IODemo.java * 目的地        d:\\IODemo.java * */public class FileCopyDemo {public static void main(String[] args) throws IOException  {//创建字符输入流对象FileReader fr = new FileReader("IODemo.java");//创建字符输出流对象FileWriter fw = new FileWriter("d:\\IODemo.java");//一次读写一个字符/*int ch;while((ch = fr.read()) != -1) {fw.write(ch);fw.flush();}*///一次读写一个字符数组int len;//用于存储读到的字符个数char[] chs = new char[1024];while((len = fr.read(chs)) != -1) {fw.write(chs,0,len);fw.flush();}//释放资源fw.close();fr.close();}}

1.2.2 字符流复制图片的问题解析

1.3 利用字节流复制文本文件
利用字节流将当前工程下的IODemo.java拷贝到d盘下
1.3.1 案例代码十

package com.itheima_03;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*

  • 使用字节流复制文本文件


  • 数据源        IODemo.java

  • 目的地        d:\a\IODemo.java


/
public class FileCopyDemo {
public static void main(String[] args) throws IOException  {
//创建字节输入流对象
FileInputStream fis = new FileInputStream("IODemo.java");
//创建字节输出流对象
FileOutputStream fos = new FileOutputStream("d:\a\IODemo.java");
//一次读写一个字节
/
int by;
while((by = fis.read()) != -1) {
fos.write(by);
}*/
//一次读写一个字节数组
int len;//存储读到的字节个数
byte[] bys = new byte[1024];
while((len = fis.read(bys)) != -1) {
fos.write(bys,0,len);
}
//释放资源
fos.close();
fis.close();
}
}


字节流可以操作所有类型的文件,因为所有的文件在计算机中都是以字节形式存储
而字符流只能用来操作纯文本类型的文件,不能操作字节类型的文件
1.4.1 案例代码十一

package com.itheima_04;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;/* * 分别使用字符流和字节流复制图片 * * 二进制文件只能使用字节流进行复制(使用windows自带记事本打开读不懂的) * 文本文件的复制即可使用字符流,也可以使用字节流 * */public class CopyImage {public static void main(String[] args) throws IOException  {//method();//创建字节输入流对象FileInputStream fis = new FileInputStream("传智学院.jpg");//创建字节输出流对象FileOutputStream fos = new FileOutputStream("d:\\传智学院.jpg");//一次读写一个字节数组int len;//用于存储读到的字节个数byte[] bys = new byte[1024];while((len = fis.read(bys)) != -1) {fos.write(bys,0,len);}//释放资源fos.close();fis.close();}private static void method() throws FileNotFoundException, IOException {//创建字符输入流对象FileReader fr = new FileReader("传智学院.jpg");//创建字符输出流对象FileWriter fw = new FileWriter("d:\\传智学院.jpg");//一次读写一个字符数组int len;//用于存储读到的字符个数char[] chs = new char[1024];while((len = fr.read(chs)) != -1) {fw.write(chs,0,len);fw.flush();}//释放资源fw.close();fr.close();}}

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP