原创

重拾java-io流


IO流

体系结构图

1

文件

创建文件三种方式:

1

//文件名创建
String fileName= "D:\\again_java\\hello.txt";
File file = new File(fileName);
//文件+文件名
File parentFile = new File("D:\\again_java\\");
String fileName= "hello1.txt";
File file = new File(parentFile,fileName);
//文件前缀名+文件名
String parentFile="D:\\again_java\\";
String fileName= "hello2.txt";
File file = new File(parentFile,fileName);

文件常用方法

getName 获取名字
getAboslutePath 绝对路径
getParent 文件父级目录
getlength 文件字节大小

1

目录方法

1

io流

1

流的分类

按操作数据单位分: 字节流 字符流
按数据流的流向分:输入流,输出流
按流的角色不同分:节点流,处理流、包装流

1 ###io 流体系图 1

FileInputStream 文件字节输入流

 定义 byte数组 空间
 read(byte【】)方法 一个中文3个字节 一个字符一个字节
 new String(byte,0,length)

1

FileOutputStream 文件字节输出流

 write(String.getbytes()) 写入
 write(byte[],0,length)
 String.getbytes() 转字节
 new FileOutputStream(文件名,true) 追加的内容后面 
 new FileOutputStream(文件名) 直接覆盖内容

1

文件字节读写操作 文件拷贝读写操作

 FileinPUTsTREAM
 FileOUTPUTsTREAM
 结合使用

1

字符流 FileReader 和 FileWriter

read()单个读取字符 -1读完
read(char[])批量读取多个字符到数组 -1读完

1

1

FileReader dmeo测试

read()
read(char[]) 字符数组
new String(char,0,readBitlen) 输出

1

FileWriter demo测试

write(int) 写入单个字符
write(char[]) 写入字符数组
write(char[],off,len)写入指定的字符数组 
write(string)写入整个字符串
write(string,off,len)写入指定的字符串
使用 字符输出流 必须关闭流 或者 flush 刷新 生效

1

节点流处理流

节点流 某一条特定的流
处理流(包装流) 连接在已经有的流上 
	例如:bufferReader BufferWriter 里面包含了 Reader或者Writer类 只有有子类都可以使用
	
	优点:增加缓冲方式提高输入输出流的效率
	操作的便捷,提供了方法来一次输入大批量数据
	
	源码采用了修饰器模式

1 1

BufferedReader缓冲输入流

 读取结果是string 判断读取完毕是 null 
   while ( (readData=bufferedReader.readLine())!=null)

1

BufferedWriter缓存输出流

和FileWriter 一样 记得关闭流

1

字符缓冲流 读写操作

注意 读是readLine 判断是 !=null 返回结果 String

1

字节缓冲流 读写操作

和上述一样

1

对象流 objectInputStream,objectOutStream

主要保存 数据和数据类型 必须实习序列化 ,反序列化
文件名格式为 .dat后缀

1

objectOutStream

必须使用 .dat 文件 必须序列化

1

objectInputStream

 必须和序列化的顺序保持一致 否则出错
 如果序列化有对象 readObject 然后向下转型 使用

1

注意事项

1

标准输入输出流

System.in 键盘 输入流     运行类 缓冲输入流
Sytem.out 显示屏 输出流   printStream流

转换字符流(可以改编码格式)

InputStreamReader,InputStreamWriter
OutputStreamReader,OutputStreamWriter

FileInputStream 转换 BufferedReader

1

FileOutputStream转成OutputStreamWriter

1

学校
总结
经验
  • 作者:阿杰(联系作者)
  • 发表时间:2022-11-04T16:37:58
  • 版权声明:杰出版
  • 公众号:--无
  • 评论