IO流,关于File类的一些;以及输入输出流 整理

在java.io包
java.io.File 文件和目录路径名的抽象表示形式
可以是文件或者文件夹

如何表示一个文件对象你?
File file = new File("d:\\haha.txt");
相关的一些方法
getPath() 路径(创建对象时指定的路径)
getAbsolutePath() 绝对路径
这两个都是根据在构造器里传递的值所决定的
lastModified() 最后一次修改的时间的毫秒数
length() 文件的大小,不能表示目录的大小
exists() 是否存在
getParent() 文件的上级目录,也是根据构造器来的
getParentFile()

列一级的文件列表
file.list();  返回的是文件名称的String数组
文件对象listFiles() 返回的文件对象的数组
也可以自己使用递归写一个多级目录显示

创建一个文件
createNewFile() 需要catch异常
文件的目录必须要存在,只能用来创建文件

mkdir() 创建文件夹
多级的文件夹创建 mkdirs()

删除 delete() 仅删除文件或者是空的文件夹
多级非空文件夹的删除,需要自己写个递归调用实现

路径的表示,需要一个分隔符,不同的操作系统是不一样的,可以写成File.separator
这是一个常量,可以根据系统自动调整;windows中使用\,要写成\\,一般写成/也可以


如果要操作文件中的内容的话,需要使用IO流
I:输入,从另一处输入到程序的内存中;
O:输出,从程序内存中,输出到别处

按照方向分:
输入流,只能读取数据
输出流,往输出流写数据

按处理数据的单位分:
字节流:以字节为单位,可处理任意类型的数据;图片,音频,文字都可以;doc、ppt不是纯文本文件
字符流:以字符为单位,只能处理纯文本数据

按流的功能不同:
节点流:和节点相连接
处理流:在节点流的基础上增加功能

IO流四大抽象基类
InputSteam   OutputStream  关于字节的
Reader   Writer  关于字符的

文件相关的前边都有个File....

IO流 程序的编写步骤:
(1)建立IO流对象
(2)读或写
(3)释放资源,这是必不可少的一步(判断null,然后close)
InputStream:
int read() :一次读取一个字节,返回读取的这个字节的数据,到达文件尾返回-1
FileReader fr = new FileReader(file)
注意try-catch时,局部变量的处理和设置
中文不止占一个字节,用InputStream,不能直接转成char,会出错
InputStream,读取多个字节byte时
byte[] data = new byte[10]
int len;
while((len=in.read(data))!=-1){
   sysout(new String(data, 0 ,len);
//这里的len一定要加上,不然上一次读取的依旧存在这一次没有存到的地方,会出错,文件的整体会变大
}
此时的read返回的是读取的个数
中文是两个字节,可能直接输出会显示错误

FileReader 读取多个字符,可以直接转成char
如果是纯文本文件的时候,建议使用字符流

OutputStream:字符串的getBytes()时,可以得到这个字符串的字节数组
然后write 就可以写到输出流中了
会覆盖原有的内容,可以换成追加模式 new FileWrite(file, true);写成true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值