一、FIle文件
1、关于File的API(常用方法)
返回类型 方法名 说明
boolean exists() 判断该文件是否存在
String getAbsolutePath() 输出该文件的绝地路径
String getName() 获取该文件的名称
String getParent() 返回file文件对象的上一级目录
boolean isAbsoulte() 测试该FIle对象表示的路径是否为绝地路径
boolean isDirectory() 测试该FIle对象是否表示为目录
boolean isFile() 测试该File对象表示的是否为文件
File[] listFile() 返回File表示目录下的所有文件
二、Stream字节流
1、InputStream抽象类
(1)FileInputStream
(2)FilterInputStream 字节缓冲流,需要关闭
(3)ObjectInputStream 序列化,需要关闭流,避免造成资源浪费
2、OutputStream抽象类
(1)FileOutputStream
(2)FilterOutputStream:BufferdOutputStream和DataOutputStream
(3)ObjectOutputStream
说明:其中FileterInputStream、ObjectInputStream和输出都依赖于InputStream和OutputStream抽象类
DataOutputStream写入流源码:
public static void DataOutputStreamTest(String path) throws Exception{ OutputStream fis = new FileOutputStream(path); DataOutputStream dos = new DataOutputStream(fis); dos.writeUTF(info.name); dos.writeInt(info.pwd); dos.close(); System.out.println("写入成功"); }
ObjectOutputStream写入流
public static void ObjectOputputStreamTest(String path) throws Exception{ FileOutputStream fos = new FileOutputStream(path); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(list); //写入集合 oos.close(); System.out.println("写入完成"); }
FileInputStream读取流
public static void fileInputStreamTest(String path) throws Exception{ //创建文件读入流对象 FileInputStream fis = new FileInputStream(path); //定义byte byte[] b=new byte[1024]; int i=-1; //默认读取长度为-1 //遍历该文件的字节内容并进行读取 while((i=fis.read(b))>0) { System.out.println(new String(b,0,i)); } }
FileOutputStream写入流
//FileOutputStream写入 public static void fileOutPutStreamTest(String path) throws Exception { String msg="我不曾在你辉煌时莫名而来,也不曾在你陷入低谷时离你而去!"; FileOutputStream fos = new FileOutputStream(path); //getBytes()将字符串转化为byte fos.write(msg.getBytes()); System.out.println("写入成功"); }
三、字符流
1、Reader抽象类
(1)FileReader
(2)BufferReader
(3)InputStreamReader
2、Write抽象类
(1)FileWriter
(2)BufferWriter
(3)OutputStreamWriter
OutputStreamWriter源码:
public static void outputStreamWriteTest(String path) throws Exception{ OutputStream os = new FileOutputStream(path); OutputStreamWriter osw = new OutputStreamWriter(os); char[] c = new char[10]; for(int i=0;i<c.length;i++) { c[i]=(char) i; } osw.write(c); osw.close(); }
InputStreamReader源码
//InputStreamReader读取 依赖InputStream public static void inputStreanReaderTest(String path) throws Exception{ InputStream in = new FileInputStream(path); InputStreamReader isr = new InputStreamReader(in); char[] c = new char[1024]; int i=-1; while((i=isr.read(c))>0) { System.out.println(new String(c,0,i)); } isr.close(); System.out.println("读取ok"); }