Java之输入输出与文件处理(十二)

我们现在所能实现的,其实与我们编写的C++没有任何区别,甚至说比较的low,我们学习这些基础的语言及语法,实际是要实现我们的交互式工作,以及我们的实际的作用


输入输出是指程序与外部设备或其它计算机进行交互的操作,几乎所有程序都具有输入与输出操作,而Java将这些输入输出操作用流来实现,用统一的接口来表示,使程序设计简单明了

流(Stream)–计算机个部件之间的数据流动,按数据流的方向分为输入流和输出流,内容上可划分为字节流和字符流,而其中的数据既可以是二进制,也可使经过编码处理的符合某种格式规定的特定数据
即流是由位组合或字符所构成的序列,如字符流序列,数字流序列等
用户通过流来读写数据,甚至通过流来连接数据源,并可以将数据以字符或位组合的形式保存

  1. 输入输出流
    数据的获取和发送都是沿着数据序列的顺序进行,每个数据都必须等待排在它前面的数据读入或送出之后才能被读写,每次读写操作都是序列中剩余的未读写数据的第一个,而不能随意选择输入输出位置
  2. 缓冲流
    为一个流配有一个缓冲区,专门用来传送哦数据的一块内存
    向一个缓冲流写入数据时,系统将数据发送到缓冲区,而不是直接发送到外部设备
    从一个缓冲流中读取设备时,实际是从缓冲区读取,缓冲区为为空时,系统会从相关外部设备自动读取数据,并读取尽可能多的数据填满缓冲区

即缓冲流提高了内存与外部设备之间的数据传输效率

这里就不详细描写我们的输入输出流库了,在网上都可以百度到

文件处理与随机访问

由于程序运行时,数据保存在系统的内存中,关机时会导致所有数据丢失,故将那些需要长期保存的数据存放在磁盘中,需要时再读出

  1. 创建File类的对象
    由于每个File类都对应系统的一个磁盘文件或文件夹,所以创建时需要给出它对应的文件名或文件夹名
    构造方法如下
构造方法 功能说明
public File(String path) 用path参数创建File对象对应的磁盘文件名或文件夹名及其路径
public File(String path, String name) 以path为路径,以name为文件或文件夹名创建FIle对象
public File(String dir, String name) 用一个已经存在代表某磁盘文件夹的FIle对象dir来作为文件夹,以name作为文件或文件夹名来创建FIle对象

注意:

  • path参数可以为绝对路径,也可为相对路径,还可为磁盘上的某个文件夹
  • 由于不同的操作系统其使用的文件夹分隔符不同,为了使其可以在不同平台上运行,可利用File类中的一个静态变量FIle.separator
    e.g.
"d: " + File.separator + "java" + File.separator + "myfile"
  1. 获取文件或文件夹的属性
    一个FIle对象一经创建,就可以通过调用它的方法来获得其对应的文件或文件夹的属性,常用方法如下
方法 功能说明
public boolean exists() 判断文件或文件夹是否存在
public boolean isFile() 判断对象是否代表有效文件
public boolean isDirectory() 判断对象是否代表有效文件夹
public String getName() 返回文件名或文件夹名
public String getPath() 返回文件或文件夹路径
public long length() 返回文件的字节数
public boolean canRead() 判断文件是否可读
public boolean canWrite() 判断文件是否可写
public String[] list() 将文件夹中所有文件名保存在字符串数组中返回
public boolean equals(File f) 比较两个文件或文件夹是否相同
  1. 文件或文件夹的操作
    即一些管理,操作方法
方法 功能说明
public boolean renameTo(File newFile) 将文件重命名为newFile对应的文件名
public boolean delete() 将当前文件删除,若删除成功返回True,否则返回False
public boolean mkdir() 创建当前文件夹的子文件夹,成功返回True,否则返回False
  1. 文件随机访问
    随机访问类RandomAccessFile,可实现对文件的随机读写
    其构造以及读取写入操作与我们的前面的类似,就不重复阐述,等到要用到直接百度即可
发布了78 篇原创文章 · 获赞 181 · 访问量 8677

猜你喜欢

转载自blog.csdn.net/qq_44790423/article/details/102058993
今日推荐