一、文件
1、文件是:相关记录或者放在一起的数据的集合 2、java程序通过 JAVA API :java.io.File 类 访问文件属性
方法名称 说明
boolean exists( ) 判断文件或目录是否存在
boolean isFile( ) 判断是否是文件
boolean isDirectory( ) 判断是否是目录
String getPath( ) 返回此对象表示的文件的相对路径名
String getAbsolutePath( ) 返回此对象表示的文件的绝对路径名
String getName( ) 返回此对象表示的文件或目录的名称
boolean delete( ) 删除此对象指定的文件或目录
boolean createNewFile( ) 创建名称的空文件,不创建文件夹
long length() 返回文件的长度,单位为字节, 如果文件不存在,则返回 0L
二、流
(1)通过流来读写文件
流是一组有序的数据序列
以先进先出方式发送信息的通道
(2)输入/输出流与数据源
(3)Java流的分类
① 按流向区分
输出流
OutputStream和Writer作为基类
输入流
InputStream和Reader作为基类
② 按照处理数据单元划分
字节流
字节输入流InputStream基类
字节输出流OutputStream基类
字符流
字符输入流Reader基类
字符输出流Writer基类
三、类的实例
1、FileInputStream
InputStream类常用方法
int read( )
int read(byte[] b)
int read(byte[] b,int off,int len)
void close( )
int available():可以从输入流中读取的字节数目
子类FileInputStream常用的构造方法
FileInputStream(File file)
FileInputStream(String name)
使用FileInputStream读文本文件
2、FileOutputStream
OutputStream类常用方法
void write(int c)
void write(byte[] buf)
void write(byte[] b,int off,int len)
void close()
void flush():强制把缓冲区的数据写到输出流中 子类FileOutputStream常用的构造方法
FileOutputStream (File file)
FileOutputStream(String name)
FileOutputStream(String name,boolean append)
使用FileOutputStream 写文本文件
3、Reader类
Reader类常用方法
int read( )
int read(char[] c)
read(char[] c,int off,int len)
void close( )
子类InputStreamReader常用的构造方法
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String charsetName)
4、FileReader类
FileReader类是InputStreamReader的子类
FileReader(File file)
FileReader(String name)
该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型
System.out.println(System.getProperty("file.encoding")); 获得本地平台的字符编码类型
使用FileReader读取文件
5、BufferedReader类
BufferedReader常用的构造方法
BufferedReader(Reader in)
子类BufferedReader特有的方法
readLine()
使用 BufferedReader读文本文件
6、Writer类
Writer类常用方法
write(String str)
write(String str,int off,int len)
void close()
void flush()
子类OutputStreamWriter常用的构造方法
OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out,String charsetName)
7、FileWriter类
FileWriter类是OutputStreamWriter的子类
FileWriter (File file)
FileWriter (String name)
该类只能按照本地平台的字符编码来写数据,用户不能指定其他的字符编码类型
使用FileWriter写文件
8、BufferedWriter类
如何提高字符流写文本文件的效率?
使用FileWriter类与BufferedWriter类
BufferedWriter常用的构造方法
BufferedWriter(Writer out)
使用 BufferedWriter写文件
9、DotaInputStream类
FileInputStream的子类
与FileInputStream类结合使用读取二进制文件
使用 DataInputStream 读二进制文件
10、序列化和反序列化的过程
序列化是将对象的状态写入到特定的流中的过程
序列化的步骤
注意:使用集合保存对象,可以将集合中的所有对象序列化反序列化是从特定的流中获取数据重新构建对象的过程
反序列化的步骤
注意:如果向文件中使用序列化机制写入多个对象,那么反序列化恢复对象时,必须按照写入的顺序读取