I/O流

流是一种抽象的概念,代表数据的无结构化传递。按照流的方式进行传递,数据被当成无结构的字节序列或字符序列。
从流中取得数据称为提取操作,向流中添加数据称为插入操作
I/O流(提供一条通道,将源中的字节序列送到目的地)
将一个程序拆分成一个个小包传输,

丢包:网络波动、带宽不够、
IO流:与硬盘进行交互;存储信息’
IO流就是以流的方式进行输入输出

1、File类

:是文件和目录路径名的抽象表示形式(代表磁盘文件本身的对象)
File file= new File(“路径”);
File类的常用方法:
.mkdir () : 创建目录
.mkdirs () : 创建多层目录(嵌套)
.createNewFile():创建新文件 (很少用)
.isDirectory(): .isFile() 判断是否是目录或文件
.exists():判断文件或目录是否存在
getName():获取文件的名称
.getAbsolutePath(): 获取输出文件夹的绝对路径
.getPath(); : 获取输出文件夹的相对路径
.lengh(): 获取文件长度;字节
canWrite():判断文件是否可以被写入
isHidden():判断是否是隐藏文件

2、字节流输入/输出流InputStream OutputStream
InputStream in=null; //字节输入流 (注意:先关闭流)
in = new FileInputStream(file);
// out = newFileOutputStream(file , true); (true 追加内容,false默认覆盖)
in.read(); //输入 读取 (返回第一个字母的ASCII码)
Byte[] b = new byte[in.available]; //存放读入的数据(获取流对象的长度)
in.read(b); //返回本次读取了多少个字节
.write 写入 .read 读取

3、BufferedInputStream BufferedOutputStream 缓存字节流输入/输出流

1、作用:平衡服务区器与客户端传输数据的差异(很大的提高运行速率),通常用来传输大文件。
2、Buffered本身不是一个流,将普通流传入进去提高速率。带缓存区
3、.flush :刷新,将缓存区的内容写入到文件中
4、Read(x) : 先将内容写到缓存区中,flush刷新,再将内容写到文件中
5、Long time1 = System.currentTimeMillis(); 获取当前时间毫秒值
Long time2 = System.currentTimeMillis();
Time2-time1 = 传输文件中间所需要的的时间

4、Reader Writer 字符输入流/输出流 (先读取字节数据,转换为字符;)(操作文档)

. available 获取缓存区字节长度
.replace 修改值
Reader r = null;
Writer w =null;
R = new FileReader(E: \hehe.txt);
W = new FileWriter(E: \lala.txt);
Char[ ] x = new char[40];
read.read(x);
String str = new String(x);
String newStr = Str.replace(“name”, “大爷”); //将文件中的内容替换为新的文本
w.write(newStr); \将新的内容写到新的文档中

5、BufferedReader BufferedWriter 缓存字符流
br.readLine: 以行为单位进行输入输出(速度更快)
(注意:new完对象之后先关闭流)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏女人净画饼

原创辛苦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值