JavaIO

    技术2023-11-20  106

    Java泛型

    1.File类的使用1.1常用构造器1.2路径分隔符1.3常用方法 2.IO流原理及流的分类2.1JavaIO原理2.2流的分类 3.NIO.2中Path、Paths、Files类的使用3.1概述3.2Path、Paths和Files核心API 4.RandomAccessFile类

    1.File类的使用

    java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关File能新建、删除、重命名文件和目录,但FIle不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入、输出流想要在java程序中表示一个真实存在的文件或目录,必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录File对象可以作为参数传递给流的构造器

    1.1常用构造器

    public File(String pathname) 以pathname为路径创建File对象,可以是绝对路径或者相对路径。 绝对路径:是一个固定的路径,从盘符开始 相对路径:是相对某个位置开始 public File(String parent,String child) 以parent为父路径,child为子路径创建File对象 public File(File parent,String child) 根据一个父File对象和子文件路径创建File对象

    1.2路径分隔符

    路径分隔符与系统有关: windows和DOS系统默认使用""来表示UNIX和URL使用"/"来表示 为了解决跨平台隐患,File类提供了一个常量 public static final String separator 根据操作系统,动态的提供分隔符

    1.3常用方法

    File类的获取功能 public String getAbsolutPath(): 获取绝对路径public String getPath(): 获取路径public String getName(): 获取名称public String getParent(): 获取上层文件目录路径。若无,返回nullpublic long length(): 获取文件长度(字节数)。不能获取目录的长度public long lastModified() : 获取最后一次的修改时间,毫秒值public String[] list(): 获取指定目录下的所有文件或者文件目录的名称数组public File[] listFiles(): 获取指定目录下的所有文件或者文件目录的File数组 File类的重命名功能 public boolean renameTo(File dest): 把文件重命名为指定的文件路径 File类的判断功能 public boolean isDirectory():判断是否是文件目录public boolean isFile():判断是否是文件public boolean exists(): 判断是否存在public boolean canRead(): 判断是否可读public boolean canWrite(): 判断是否可写public boolean isHidden(): 判断是否隐藏 File类的创建功能 public boolean createNewFile():创建文件、若文件存在,则不创建,返回falsepublic boolean mkdir(): 创建文件目录,如果此文件目录存在,就不创建。如果此文件目录的上层目录不存在,也不创建public boolean mkdirs():创建文件目录,如果上层文件目录不存在,一并创建。 File类的删除功能 public boolean delete(): 删除文件或者文件夹注意:Java中的删除不走回收站。如果要删除一个目录,这个目录内必须是空的

    2.IO流原理及流的分类

    2.1JavaIO原理

    I/O是Input/Output的缩写,用于处理设备之间的数据传输Java程序中,对于数据的输入/输出操作以流(stream)的方式进行java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据

    2.2流的分类

    按操作数据单位不同分为:字节流(8bit)、字符流(16bit)按数据流的流向不同分为:输入流、输出流按流的角色不同分为:节点流、处理流 抽象基类字节流字符流输入流InputStreamReader输出流OutputStreamWriter

    3.NIO.2中Path、Paths、Files类的使用

    3.1概述

    Java NIO(New IO),是从java1.4版本开始引入的一套新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的),基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。Java API中提供了两套NIO,一套针对标准输入输出流,另一套就是网络编程NIO java.nio.channels.Channel FileChannel:处理本地文件 SocketChannel:TCP网络编程的客户端的Channel ServerSocketChannel:TCP网络编程的服务器端的Channel DatagramChannel:UDP网络编程中发送端和接收端的Channel

    3.2Path、Paths和Files核心API

    早期的File类访问文件系统,功能有限,性能不高,并且大多数方法出错时仅返回失败,并不会提供异常信息NIO.2为了弥补这种不足,引入了Path接口,可以看成是File类的升级版本,实际引用的资源亦可以不存在同时,提供了Files,Paths工具类,Files包含了大量静态的工具方法来操作文件;Paths则包含了两个返回Path的静态工厂方法Paths类提供的静态get()方法用来获取Path对象: static Path get(String first,String… name): 用于将多个字符串串成路径static Path get(URI uri): 返回指定uri对应的Path路径

    4.RandomAccessFile类

    RandomAccessFile声明在java.io包下,但直接继承与java.lang.Object类。并且它实现了DataInput、DataOutput这两个接口,也就意味着这个类既可以读也可以写

    RandomAccessFile类支持“随机访问”的方式,程序可以直接跳到文件的任意位置来读、写文件

    支持只访问文件的部分内容可以向已存在的文件后追加内容

    RandomAccessFile对象包含一个记录指针,用以标示当前读写处的位置

    RandomAccessFile类对象可以自由移动记录指针

    long getFilePointer(): 获取文件记录指针的当前位置void seek(long pos): 将文件记录指针定位到pos位置

    构造器

    public RandomAccessFile(File file,String mode)public RandomAccessFile(String name,String mode)

    创建RandomAccessFile类实例需要制定一个Mode参数,该参数指定了访问模式:

    r:只读rw: 读写rwd: 读写;同步文件内容的更新rws: 读写;同步文件内容和元数据的更新

    如果模式为只读,则不会创建文件,而是会读取一个已经存在的文件,如果读取的文件不存在则会出现异常。

    如果为rw模式,如果文件不存在则会创建文件,如果存在则不创建

    Processed: 0.011, SQL: 9