IO包
输入、输出
导入:import java.io.*;
作用:操作文件
文件:可以认为是相关记录或存放在一起的数据集合。
文件一般是存放在磁盘上。
File文件类:
流:是用来操作文件的工具类。
java中的流分类:
内容上分类:字节流(一般用来复制文件)stream
字符流(一般用来读取文件内容)reader、writer
方向上来分:(参照物 当前工程)
输入流:input
输出流:output
1、FileInputStream类和FileOutputStream类完成文件复制功能
2、FileReader类和FileWrite类,配合BufferedReader类和BufferedWrite类进行读取和写入功能。
3、InputStreamReader类和BufferedReader类完成控制台的输入功能。
4、PrintWriter类的使用方式
5、file.exists();文件是否存在;
file.isFile();是否是文件;
file.isDirectory();是否是目录
file.getName();获取文件的名称
file.getAbsolutePath();获取绝对路劲;
file.lastModified();最后修改时间;
file.length();文件的大小
6、流:是指一连串流动的数据信号,是以先进先出的方式发送和接受数据的通道。
7、字节流是指8位的通用字节流,以字节为基本单位,在java.io包中,对于字节流进行操作的类大部分继承于InputStream(输入字节流)类和OutputStream(输出字节流)类。
8、字符流是指16位Unicode字符流,以字符(两个字节)为基本单位,非常适合处理字符串和文本,对于字符流进行操作的类大部分继承与Reader(读取流)类和Writer(写入流)类。
9、FileInputStream类为文件输入流,继承InputStream类,是进行文件读取操作的最基本类。作用:将文件的数据输入到内存中,尅利用它来读文件。
10、int read(): 读取文件中的数据,一次读取一个字节,读取的数据作为返回值返回,如果读到文件尾则返回-1。
11、int read(byte[] b)读取文件中的数据,将读到的数据存放到byte型数字中,并返回读取的字节的数量,为读到数据返回-1.
public static void main(String[] args){
try{
File file = new File("test.txt");
FileInputStream input = new FileInputStream(file);
for(int i=0;i<file.length();i++){
char ch = (char)(input.read()); //循环读取字符
System.out.print(ch);
}
input.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
try{
File file = new File("test.txt");
FileInputStream input = new FileInputStream(file);
byte[] buf = new byte[(int)(file.length())]; //根据文件的字节长度创建字节数组
input.read(buf); //读取文件中的数据存放到字节数组中
String str = new String(buf); //利用字节数组创建字符串
System.out.println(str); //打印字符串
input.close();
}
}
12、对象流
(1)、如果要持久化(序列化)对象,那么这个对象一定要实现Serializeable接口
(2)、序列化的作用:用来持久化对象;
凡是在网络中能够传递的对象,这个对象必须序列化
(3)、transient 是在序列化对象的时候,可以把某个属性不序列化进去。