[零基础学JAVA]Java SE应用部分-27.Java IO操作(01)

JAVA IO操作目标
image
本季知识点
1、File类
2、RandomAccessFile类
File类
image
image
在JAVA中所有的IO操作全部存放在java.io包中。
File是唯一一个与文件本身有关的操作。
image
在使用File类的构造方法处必须加入一个完整的路径。
要求一:可以在F盘上建立一个新的文件:demo.txt文件。
public boolean createNewFile() throws IOException
image
image
看下效果:
image
我们发现系统提示非法转义字符,在前面学习正则时“\”表示转义,我们需要输入两个“\\”即“f:\\demo.txt”
image
image
需要进行try/catch处理
image
现在发现文件出来了哈~
image
如果现在再想创建同一个文件,我们会发现显示false,因为文件已经存在,不能再创建同一文件哈~
image
能否删除掉demo.txt的文件呢?
public boolean delete()
image
image
image
要求:
如果文件存在则删除掉文件,如果文件不存在,则创建文件。
判断文件是否存在: public boolean exists()
image
image
注意点:
如果程序按以上格式写的话,则会有一个限制:
・ windows:\
・ linux:/
File类中提供了几分割符
public static final String separator
image
image
public String getPath()
image
image
image
判断给定的路径是否是一个目录: public boolean isDirectory()
  image
  image
显示f:\demo.txt不是目录哈~
image
再来看一个:
  image
显示F:\TL-WN310G& TL-WN350G是目录哈~
image
通过这个方法可以判断给定的路径是否是目录哈~
要求可以列出指定目录下的全部文件。
・ 返回完整路径: public String[] list() ;
・ 返回全部的File对象: public File listFiles() ;
1、使用字符串数组操作
image
image
可以正常列出F:\资料目录下的文件和目录哈~
image
2、使用File类对象数组
image
使用File类可以开出路径哈~
image
思考题:
image
不断的判断给定的路径是否是目录,如果是目录,则继续向下列出,此种题目只能使用递归操作完成。
image
看下效果:
  image
  image
注意:递归操作可能会导致内存泄漏问题~~~
输入输出方法
image
读写过程
  image
RandomAccessFile
  image
假设一个文件中存放了三组数据:
AA          80
BB          90
CC          99
image
RandomAccessFile类
public RandomAccessFile( File file, String mode) throws FileNotFoundException
public RandomAccessFile(File file,               --> File 类的实例化对象
String mode)                                                --> 模式
throws FileNotFoundException
模式现在主要用两种:
・ r:只读
・ w:只写
・ rw:读写            
  --> 如果没有文件,写时,会自动创建。
image
public final void writeBytes(String s) throws IOException
public final void writeInt(int v) throws IOException
image
看下效果:
image
image
现在我们可以写入数据了,下面我们将其读出来哈~
实际上读的时候只能按byte读出,byte只能一个一个的往外读。
image
image
如果读完第一个人的数据,则此时指针在第二个人之前,如果继续往下读则会读取第二个人的数据,我们测试一下哈~~
image
image
如果我们想不读取第一个人的数据,直接读取第二个人的数据,看下面哈~~
public final byte readByte() throws IOException
public int skipBytes(int n) throws IOException
public void seek(long pos) throws IOException
image
看下效果,直接读取第二个人数据了哈~
image
如果要读取第三个人数据就是跳过16个字节哈~ raf1.skipBytes(16);
image
image
现在我们是一直往下读哈,我们要使指针往回读取数据呢?
image
看下效果:
image
虽然此类可以比较灵活的实现读写操作,可是也是有缺点的,因为必须知道的其跳的长度。
真正开发中使用的数据读取类: InputStream、OutputStream、Reader、Writer ,下季再见分晓哈~~~~
##############################################################

本文出自 “王乾De技术博客” 博客,谢绝转载!

你可能感兴趣的:(java,io操作,File类,零基础学JAVA)