java.io.File类的使用:计算机操作系统中的文件和文件夹
IO原理及流的分类:通过程序把一个图放到某一个文件夹中,把图片转化为一个数据集,把这些数据一点一点传到文件夹,我们可以称这个整体的数据集是一个数据流
文件流:数据流的读写都是基于文件的操作
FileInputStream/FileOutputStream/FileReader/FileWriter
读取文件操作步骤:
1.建立一个流对象,将已存在的一个文件加载进流
FileReader r=new FileReader(“XXXXX”);
2.创建一个临时存放数据的数组
char[] b=new char[100];
3.调用流对象的读取方法将流中的数据读入到数组中
r.read(b);
写入文件步骤:
1.创建流对象,建立数据存放文件
FileWrite w= new FileWriter(“XXX”);
2.调用流对象的写入方法,将数据写入流
w.writer(“xxx”);
3.输入流关闭之前要清空缓存
w.flush();
4.关闭流资源,并将流中的数据清空到文件中
w.close();
缓冲流:数据流的读写都是基于内存的操作
BufferedInputStream/BufferedOutputStream/BufferedReader/BufferedWriter
转换流
InputStreamReader/OutputStreamWriter
InputStreamReader/OutputStreamWriter转换字符流操作更加高效
public InputSreamReader(InputStream in,String charsetName)
public OutputSreamWriter(OutputStream out,String charsetName)
标准输入/输出流
System.in / System.out为标准的输入和输出
打印流
PrintStream/PrintWriter
数据流
DataInputStream/DataOutputStream
对象流–涉及序列化,反序列化:把一个对象转换为一个数据流进行读写
ObjectInputStream/ObjectInputStream
随机存取文件流:
RandomAccessFile
RandomAccessFile 对象包含一个记录指针,用以标示当前读写处的位置。
RandomAccessFile 类对象可以自由移动记录指针:
long getFilePointer():获取文件记录指针的当前位置
void seek(long pos):将文件记录指针定位到 pos 位置
构造器
public RandomAccessFile(File file, String mode)
public RandomAccessFile(String name, String mode)
创建 RandomAccessFile 类实例需要指定一个 mode 参数,该参数指定 RandomAccessFile 的访问模式:
r: 以只读方式打开
rw:打开以便读取和写入
rwd:打开以便读取和写入;同步文件内容的更新
rws:打开以便读取和写入;同步文件内容和元数据的更新
关于File类
java.io.File类:文件和目录路径名的抽象表示形式
File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。
如果需要访问文件内容本身,则需要使用输入/输出流。
File对象可以作为参数传递给流的构造函数
File类的常见构造方法:
public File(String pathname)
以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
public File(String parent,String child)
以parent为父路径,child为子路径创建File对象。File的静态属性String separator存储了当前系统的路径分隔符。
Java IO原理
IO流是处理设备之间数据传输的(数据的传输是以“stream”的方式进行)
input:读取外部数据
output:将程序数据输出到磁盘光盘等存储设备中
流的分类
按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)
按数据流的流向不同分为:输入流,输出流
按流的角色的不同分为:节点流,处理流