章节笔记——IO流
流是连接程序和设备的管道,主要用于数据传输。
四大基本抽象流:
- 输入流:read input
- 输出流:write output
- 字符流:read write
- 字节流:input output
对象.read()返回值为int型
//ASCII从0开始的数字,只有为什么都没有才返回-1
对象.flush();//将缓存输出 写在文件关闭之前
文件关闭
对象.close();
文件流:
字符 :FileReader输入FileWriter输出(写到硬盘)
字节 :FileInputStream输入FileoutputStream输出
文本文件用字符流 其他文件用字节流
1字符=2字节
原因:字母和数字一个字节 一个汉字两个字节
字符流:文本文件
字节流:音频 视频 图片
缓冲流
输入:
BuffereInputStream hcfz= new BuffereInputStream( new FileInputStream("地址"));
byte [] hc =new byte[2048]; //缓冲区大小
int ff;
ff = hcfz.write(hc);
while(hc!=(-1)){
hczt.write(hc,0,ff);//为了防止最后一次书库长度与缓冲区不同
ff = hcfz.read(hc);
}
转换流
键盘键入是字节流System.in 转换成字符流输出
new InputsTReader(System.in)
数据流
DataOutputStream 数据字节输出流
writeXXX(data)方法的结果是计算机识别的二进制形式
Print流
PrintStream 打印输出流
printStream中的println(data)方法结果是是字符串形式
将字符写进文件
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
PrintStream shuchu = new PrintStream("D:/缓存/myjava/shucu.txt");
System.setOut(shuchu); //(输出对象)可以是打印机等等//输出到什么位置
System.out.println("文件里的内容");
}
}
System.set.Err(对象);//专门输出错误
Object流
将数据存入到文件中 文件是乱码 但是不是加密
readObjec()方法是用于读取数据,并且进行类型转换
transient 的作用是忽略 外界传不进来值
finally 的作用是善后 要起到退出作用
如果写finally 则前面不要写退出代码
finally {
try{
对象.close();
System.exit(-1);
}
catch(Exception e){
System.exit(-1);
}
}
空接口Serializable
Serializable接口,它只是一个标志,没有任何方法,只有实现这个接口才具有序列化功能。
文件的属性读取
-
读取路径
对象. getAbsolutePath() -
文件大小 单位是字节
对象.length() -
文件是否可读
对象.canRead() -
文件是否可写
对象.canWrite() -
文件是否存在
对象.exists()文件是否存在 返回布尔值 -
创建文件
对象.createNewFile() -
创建文件夹
正常和创建文件方法一样
对象.mkdir(); -
文件夹是否存在
对象.isDirectory() -
文件夹下创建文件