IO流的一些基本笔记

1、File类----------------------------->作用:与外界建立联系

2个常量:路径分隔符 File.pathSeparator(;分号)             文件分隔符 File.separator            ( windows(\)其他操作系统(/)) 

1)、路径的表示形式

a)、String Path ="E:\\xp\\test\\2.jpg";

b)、String Path ="E":+File.separator+"xp"+File.separator+"test"+File.separator+"2.jpg";(优点:跨平台)

c)、String Path ="E:/xp/test/2.jpg";(推荐使用)


2)、相对路径与绝对路径与外界建立联系

a)、相对路径

String parentPath ="E:/xp/test/“;(父类目录)

String name = ”2.jpg“;(建立文件名)

第一种:File src = new File(parentPath,name);(直接让文件在目录下有联系);

第二种:File src = new File(new File(parentPath),name);(先让父类文件建立联系,再让文件在目录下有联系);

b)、绝对路径

File src = new File("E:/xp/test/2.jpg");

c)、没有盘符、以user.dir构建


2、IO流的基本操作

1、建立联系

File src = new File();

2、选择流

3、操作

输出流建议养成.flush的习惯

4、释放资源

流.close


3、IO流的分类


一、节点流(分为字节流、字符流)

概念:离数据源最近的流

a)、字节流:可以处理一切格式

a、1)、输入流 inputSteam  、FileInputSteam  、byteArrayInputSteam

操作 read(字节数组)

 创建中间容器  byte[ ] flush = new byte[长度];

 定义接受长度  int  len = 0;

 循环读取  while(-1!=(len=流.read(flush))){   }

 操作 输出或者拷贝

a、2)、输出流  outputSteam  、FileOutputSteam  、byteArrayOutputSteam

操作 write(字节数组,0,长度)

输出

b)、字符流:只能处理纯文本文件

b、1)、输入流 Reader  、FileReader  、byteArrayReader

操作 read(字符数组)

 创建中间容器  char[ ] flush = new char[长度];

 定义接受长度  int  len = 0;

 循环读取  while(-1!=(len=流.read(flush))){   }

 操作 输出或者拷贝

b、2)、输出流  Writer  、FileWriter  、byteArrayWriter

操作 write(字符数组,0,长度)


二、处理流(分为转换流、缓冲流、处理数据类型流、打印流等高级流)

作用:装饰模式、提高性能、增强功能

a)、转换流:解码与编码字符集问题的处理

1)、输入流  inputSteamReader  ——>解码

2)、输出流  outputSteamWriter  ——>编码

b)、缓冲流:提高性能  建议所有流都加上缓冲流提高性能

1)、输入流  bufferedInputSteam   bufferedReader

2)、输出流   bufferedOutputSteam   bufferedWriter

c)、处理数据类型流

1)、基本数据类型+String:必须存在才能读取  读取顺序要与写出顺序一致

1、a)、输入流  DataInputSteam  ——>新增方法  read数据类型

1、b)、输出流   DataOutputSteam ——>新增方法  write数据类型

2)、引用类型

2、a)、反序列化  ObjectInputSteam  ——>新增方法  readObject

2、b)、序列化     ObjecrOutputSteam ——>新增方法  writeObject

4、打印流:PrintSteam()

5、System.in(键盘输入) System.out(打印标准输出(控制台)信息) System.err(打印错误输出信息) 

SetIn  SetOut SetErr(重定向,用来输出到日志)

注意:以下IO流有新增方法不能使用多态:

1   byteArrayOutputSteam——>新增方法.toByteArray()   2   bufferedReader——>新增方法.readLine

3   bufferedWrite——>新增方法.newLine   4   DataInputSteam  ——>新增方法  read数据类型   DataOutputSteam ——>新增方法  write数据类型

5   ObjectInputSteam  ——>新增方法  readObject   ObjecrOutputSteam ——>新增方法  writeObject   6   printSteam







  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值