27 Java IO操作01File类RandomAccess类Word文档下载推荐.docx
《27 Java IO操作01File类RandomAccess类Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《27 Java IO操作01File类RandomAccess类Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
2、RandomAccessFile类
File类
在JAVA中所有的IO操作全部存放在java.io包中。
File是唯一一个与文件本身有关的操作。
在使用File类的构造方法处必须加入一个完整的路径。
要求一:
可以在F盘上建立一个新的文件:
demo.txt文件。
publicbooleancreateNewFile()throwsIOException
看下效果:
我们发现系统提示非法转义字符,在前面学习正则时“\”表示转义,我们需要输入两个“\\”即“f:
\\demo.txt”
需要进行try/catch处理
现在发现文件出来了哈~
如果现在再想创建同一个文件,我们会发现显示false,因为文件已经存在,不能再创建同一文件哈~
能否删除掉demo.txt的文件呢?
publicbooleandelete()
要求:
如果文件存在则删除掉文件,如果文件不存在,则创建文件。
判断文件是否存在:
publicbooleanexists()
注意点:
如果程序按以上格式写的话,则会有一个限制:
·
windows:
\
linux:
/
File类中提供了几分割符
publicstaticfinalStringseparator
public
String
getPath()
判断给定的路径是否是一个目录:
publicbooleanisDirectory()
显示f:
\demo.txt不是目录哈~
再来看一个:
显示F:
\TL-WN310G&
TL-WN350G是目录哈~
通过这个方法可以判断给定的路径是否是目录哈~
要求可以列出指定目录下的全部文件。
返回完整路径:
publicString[]list();
返回全部的File对象:
publicFilelistFiles();
1、使用字符串数组操作
可以正常列出F:
\资料目录下的文件和目录哈~
2、使用File类对象数组
使用File类可以开出路径哈~
思考题:
不断的判断给定的路径是否是目录,如果是目录,则继续向下列出,此种题目只能使用递归操作完成。
注意:
递归操作可能会导致内存泄漏问题~~~
输入输出方法
读写过程
RandomAccessFile
假设一个文件中存放了三组数据:
AA
80
BB
90
CC
99
RandomAccessFile类
publicRandomAccessFile(File
file,
mode)throws
FileNotFoundException
publicRandomAccessFile(Filefile,
-->
File类的实例化对象
Stringmode)
模式
throwsFileNotFoundException
模式现在主要用两种:
r:
只读
w:
只写
rw:
读写
如果没有文件,写时,会自动创建。
publicfinalvoidwriteBytes(Strings)throwsIOException
publicfinalvoidwriteInt(intv)throwsIOException
现在我们可以写入数据了,下面我们将其读出来哈~
实际上读的时候只能按byte读出,byte只能一个一个的往外读。
如果读完第一个人的数据,则此时指针在第二个人之前,如果继续往下读则会读取第二个人的数据,我们测试一下哈~~
如果我们想不读取第一个人的数据,直接读取第二个人的数据,看下面哈~~
publicfinalbytereadByte()throwsIOException
publicintskipBytes(intn)throwsIOException
publicvoidseek(longpos)throwsIOException
看下效果,直接读取第二个人数据了哈~
如果要读取第三个人数据就是跳过16个字节哈~raf1.skipBytes(16);
现在我们是一直往下读哈,我们要使指针往回读取数据呢?
虽然此类可以比较灵活的实现读写操作,可是也是有缺点的,因为必须知道的其跳的长度。
真正开发中使用的数据读取类:
InputStream、OutputStream、Reader、Writer,下季再见分晓哈~~~~
##############################################################
本文出自“王乾De技术博客”博客,谢绝转载!