流
流是一种抽象的概念,代表数据的无结构化传递。按照流的方式进行传递,数据被当成无结构的字节序列或字符序列。
从流中取得数据称为提取操作,向流中添加数据称为插入操作
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完对象之后先关闭流)