java io笔记

1.io类下的file类
代表一个文件或文件目录
①.实例化
file a = new file();
file(string filepath)
file(string parentpath,string childepath)
file(file parentfile,string childpath)
相对路径:相较于某个路径下 指明路径
绝对路径:包含盘符在内的文件或文件目录的路径;
路径分隔符:
windows:\\ unxi:/
file类中涉及到关于文件或者文件目录的创建,删除,重命名,修改时间,文件大小等方法;
  如果想对写入或者读取文件内容的操作 需要io流完成
后续file类的对象常用作为参数传递到流的构造器中,指明读取或者写入的终点;
getAbsolutePath()获取绝对路径
getpath 获取路径;
getname 获取名称
getparent 获取上层文件目录路径;
length 文件长度
lastmodified 最后一次修改时间
list 获取指定目录下的所有文件或者文件目录名称数组
listfiles 获取file数组
renaneto 把文件重命名为指定文件路径
is directory 判断是否是文件目录
isfile 是否是文件
exists 是否存在
canread 是否可读
canwrite  是否科协
ishidden 是否隐藏;
------------------------------------------------------------------------------------------------------------
流的分类;
按照操作数据单位不同分为:字节流(8bit)字符流(16bit)
按照数据流的流向不同分为:输入流、输出流
按照流的角色不同分为节点流 直接作用在文件上,处理流 直接作用到流上
字节流与字符流的使用场景:
字节流 read(byte [] buffer) 非文本文件
字符流 read(char [] cbuf)  文本文件
字节流可以作为字符流的文本复制 但是字符流不能复制非文本
缓冲流的实现效果要比字节流和字符流要好
bufferedinputstream  bis= new bufferedinputstream(new fileinputstream(new file('a.jpg')))
bufferedinputstream bos = new bufferedinputstream(new fileinputstream(new file('b.jpg')))
byte [] buffer = new byte[1024]
int len;
while(len=bos.read(buffer)!=-1){
bos.write(buffer,0,len)
}
bos.close();
bis.close();
同时使用try-catch-finally处理异常;
转换流是那俩类
inputstreamReader 将输入的字节流转换为输入的字符流;
OnputstreamWriter 将输出的字符流转换为输出的字节流;
InputStreamReader isr = new InputStreamReader(new fileInputstream('1.txt'),'gbk')解码的时候编码集取决于文件本身格式;
OnputStreamWriter isr = new OnputStreamWriter(new fileInputstream('1.txt'),'utf-8')编码的时候不需要考虑文件,需要考虑保存的格式
一、输入输出标准化流程:
1.输入过程:
创建file类对象 指明读取数据来源;
创建相应的输入流 将file类的对象作为参数 传入流的构造器
读入过程:read创建相应的byte[]或者char
关闭流资源 抛出异常
1.输出过程:
创建file类对象 指明写出数据位置;
创建相应的输出流 将file类的对象作为参数 传入流的构造器
写出过程:write创建相应的byte[]或者char(char[]/byte[] buffer,0,len)
关闭流资源 抛出异常;
从内存写出数据到硬盘
1.输出操作对应的file可以不存在不会报异常
2.file对应的硬盘中的文件不存在 输出的时候自动创建
 file对应的硬盘中的文件存在:如果使用filewriter(file,false) 会覆盖原有内容
                  如果使用filewriter(file,ture) 不会覆盖原有内容,在原有内容追加


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值