Java每日笔记014 I/O流

Java第13讲

IO流:指数据相对于内存的走向来定义的输入和输出
特点:先进先出
分类:字节流/字符流、输入流/输出流
字节流和字符流的区别:
1、底层实现不同
2、参数不同,字节流使用byte,字符流使用char
3、字节流可以处理任何文件,字符流只能处理文本文档。
File:对计算机磁盘空间操作的类,可以对指定盘符文件或文件夹进行操作
注意:创建对象时,路径可以是绝对路径,也可以是相对路径,相对路径开始位置为当前项目
注意:相对路径中,…表示返回上级目录,.表示本目录
canRead():判断指定盘符是否有读取权限
canWrite():判断指定盘符是否具有写入权限
createNewFile():在指定文件目录及名称的前提下(创建File对象时通过构造函数指定)创建文件。
注意:文件只能在已经存在目录下创建
mkdir():在指定目录路径及名称的前提下(创建File对象时通过构造函数指定)创建一个目录
注意:只能在已经存在目录下创建
mkdirs():在指定目录下创建多层目录
delete():表示删除创建当前File对象时,构造函数中指定的pathName中最后的内容
例:new File(“D:/laopan/kitty.txt”),在删除时将删除kitty.txt
返回值:正确删除时返回true,否则返回false。
注意:删除目录时,只能删除空目录。
list():表示返回目录下的文件或者目录名,包含隐藏文件
注意:如果指定为当前项目所在空间,且没有说明是目录时,将展示当前项目的内容
exists():表示判断大年对象被创建时所指定的文件或目录是否存在。
getAbsolutePath():表示获取当前或目录在磁盘中的真实路径
getName():表示获取文件或目录的名称
isDirectory():表示判断创建当前对象时指定的路径是否为目录,是则返回true,否则返回false
isFile():表示判断创建当前对象时指定的路径是否为文件,是则返回true,否则返回false
isHidden():表示判断创建当前对象时指定的路径是否为隐藏,是则返回true,否则返回false
renameTo(new File(“新的名称”)):表示修改原来的名称为新的名称
字节流:
InputStream:输入流,为抽象类,其子类负责实现read方法
available():表示获取当前文档中可读取的字符数量
read():表示读取一个字符
注意:对于流来说,读取一个字符则少一个字符(当前对象中,每调用一次read方法,则少一个字符)
read(byte[] b, int off, int len):表示将制定获取到的字符存放byte数组中
参数1:表示将要存放获取到的字符的数组(相当于流的缓冲区)
参数2:表示将字符放入数组中时从哪一个下表位置开始
参数3:表示将要获取的字符的数量
返回值:向数组中添加了多少个元素
reset():表示重置读取位置(此位置为头部)
注意:使用时需要使用BufferedInputStream对InputStream对象进行包装

OutputStream:输出流,为抽象类,其子类负责实现write方法
	注意:new FileOutputStream(new File("D:/laopan/kitty.txt"))被执行时,kitty.txt文档将被创建,如果此文档已经存在,则新文档覆盖原文档。
		  new FileOutputStream(new File("D:/laopan/kitty.txt"), true);第二个参数表示新文档是否为追加文档(true表示不覆盖原文档)
	write(int b):表示将参数写入指定文档中,参数:int类型
	write(byte[] b):表示将数组中的内容写入到指定文档中,参数:byte数组
	write(byte[] b,int off,int len):表示将数组中的内容从指定位置(off)开始,共指定长度(len)的内容写入到指定文档中
	注意:byte类型数组在此处的作用为缓冲(缓冲区)。

字符流:
Reader:输入流,为抽象类,其子类负责实现read方法
read():读取一个字符,返回值为int类型(大年字符的编码)
read(char[] cbuf):表示读取当前数组长度的字符,放入数组中,返回值为放入数组中元素的个数
read(char[] cbuf, int off, int len):表示读取指定长度(len)个元素,从指定位置(off)开始,放入数组中(参数1)
注意:返回值为放入数组中元素个数

Writer:输出流,为抽象类,其子类负责实现write方法
		注意:new FileWriter(new File("D:/laopan/kitty.txt"))被执行时,kitty.txt文档将被创建,如果此文档已经存在,则新文档覆盖原文档。
		      new FileWriter(new File("D:/laopan/kitty.txt"), true);第二个参数表示新文档是否为追加文档(true表示不覆盖原文档)
		append(char c):表示将指定字符写入文档中
		append(CharSequence csq):表示将指定内容写入文档中
		append(CharSequence csq, int start, int end):表示将制定内容的从开始位置到结束位置的字符写入文档中
			注意:参数CharSequence为接口,其实现类有:String、StringBuffer、StringBuilder等
			注意:append方法的返回值为当前对象本身,即:可以继续调用对象方法
			注意:长度不能超过要写入文档中的字符串的长度,否则将出现越界异常
		write(int c):表示将参数写入指定文档中,参数:int类型
		write(char[] cbuf):表示将数组中的内容写入到指定文档中,参数:char数组
		write(char[] cbuf,int off,int len):表示将数组中的内容从指定位置(off)开始,共指定长度(len)的内容写入到指定文档中
			注意:char类型数组在此处的作用为缓冲(缓冲区)。
		write(String str):表示将制定字符串写入文档中
		write(String str, int off, int len):表示将制定字符串(str)从指定位置开始(off),共指定长度(len)的字符写入文档中
			注意:此处每一个汉字都将作为一个字符存在

方法:
close():表示关闭当前流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值