java、io、file类的使用-->计算机操作系统中的文件和文件夹
file能新建,删除,重命名文件和目录,但file不能访问文件内容本身
file对象可以作为参数传递给流的构造函数,注意\在文件是路径的分隔符,但是在java中的意思是转接符,在java中\或/才是文件的分隔符
也可以使用Flie separato作为文件的分隔符
f.getName获取文件名/当前的文件夹名称
f.getPath获取文件当前的路径/获取文件,就是new file时候写的路径(相对路径)就是写的什么路径就是什么路径。
f.getAbsolutepath获取文件的绝对路径
f.getAbsoluteFile返回一个用当前的文件的绝对路径构建的file对象
f.getparent返回当前文件或者文件夹的父级路径
f.renameToCnewFile(D:\xxx\xxx\xxx\(改后的文件名.txt));给文件或者文件夹重命名
exists判断文件或者文件夹是否存在
f.canwrite判断文件是否可写
f.canRead判断文件是否可读
f.isFile判断当前的file对象是不是文件
f.isDirectory判断当前的file对象是不是文件夹目录
f.lastModified获取文件的最后修改时间,返回的是一个毫秒数
f.length返回文件的长度,单位是字节
createNewFile新建文件
f.delete删除文件
f.mkdir创建单层目录,f.mkdirs创建多层目录
lis返回的是当前文件夹的子集名称,包括目录和文件
Fise f = new File(“D:\xxx”);
String[] f1 = file.list()for循环(增强)
listFiles返回的是当前文件夹的子集的对象,包括目录和文件
File类递归遍历文件
输入input 输出output
流的分类:
抽象基类 字节流 字符流
输入流 inputStream Reader
输出流 outputStream wirter
in.read()方法有一个返回值,返回值是读取的数据的长度,如果读取到最后一个数据,还会向后读一个。这个时候返回值就是-1,也就意味着当in.read的返回值是-1时,整个文件就读取完毕了。
in.close 流在使用完毕之后一定要关闭
new String(x,x,x)
wrist把数据写到内存中
flush把内存中的数据刷写到硬盘上
字节流复制文件
注意:文件字节流非常通用,可以用来操作字符的文档,还可以操作任何的其他类型文件(图片,压缩包)引用字节流直接使二进制。
FileReader fr = new FileReader(inpath)
创建文件字符输入流的对象
输出流
File writer
字符流复制文件
字符流完成拷贝文件,字符流只适合操作内容是字符文件
注意:在写一个文件时,如果目录下有同名文件将被覆盖,在读取文件时必须保证该文件已存在,否则出现异常。
缓冲流就是先把数据缓冲内存里,在内存中去做io操作,基于内存的io操作大概能比基于硬盘的io操作快75000多倍。
缓冲字节流
关闭流的时候,本着最晚开的最早关,依次关。
缓冲字符流
转换流
转换字节输入流为字符输入流inputStreamReader
注意:在转换字符流的时候,设置的字符集编码要与读取的文件的数据的编码一致,否则就会出现乱。
InputStreamReader = new InputStreamReader(xx,编码)
转换字节输出流为字符输出流outputStreamWriter
编码
标准输入流和输出流
system.in system.onu
打印流
用数据输出流写到文件中的基本数据类型的数据是乱码的,不能直接辨认出来,需要数据输入流来读取。
对象流:
因为保存对象到硬盘(对象的持久化)和对象的网络传输,需要做这两件事,就产生了对象的输入流和输出流。
序列化(serialize):用objectOutputStream类将一个java对象写入io流中
反序列化(Deserialize):用objectinputStream类从io流中恢复该java对象。
序列化与反序列针对的是对象的各种属性,不包括类的属性
为了让某个类是可序列化的,该类必须实现如下两个接口之一:
SeriaLizable Externalizable
serialverasionUID用来表明类的不同版本间的兼容性
RandomAccessFile类支持随机访问
字节流写数据换行 :
finally:在异常处理时提供finally快来执行所有清除操作,比如说io流中的释放资源。
特点:被finally控制的语句一定执行,除非jvm退出,汉子在存储的时候,无论选择哪种编码存储,第一个字节都是负数。
Vnicode字符集:为表达人以语言的任意自付二设计,是业界的一种标准,也被称为同意吗,标准的玩过吗,他最多适用4个字节的数字来表达每个字母,符号,或者文字,有三种编码方法:UTF-8、UTF-16、UTF-32。
flush()刷新刘,还可以写数据
close()关闭流
fileReader改进
File Writer
字符缓冲流特有功能
writer void nextLine写一行行分隔符
Reater public String readLine()读一行文字
字节流可以复制任意文件数据,有4种方式,一般采用字节缓冲流一次读写一个字节数组的方式。
字符流只能复制文本数据,有5中凡是,一般采用字符缓冲流的特有功能呢个。
原文:https://www.cnblogs.com/qidai233333/p/14776831.html