IO流
File
File类概述和构造方法
File类创建功能
File类判断和获取功能
File类删除功能
递归
案例:遍历目录
字节流
IO流概述和分类
字节流写数据
字节流写数据的3种方式
字节流写数据的两个小问题
字节流写数据加入异常处理
字节流读数据(一次读一个字节数据)
字节缓冲流
字符流
为什么会出现字符流
编码表
字符串中的编码解码问题
字符流中的编码解码问题
字符流写数据的5种方式
字符流读数据的2种方式
案例:复制Java文件
字符缓冲流
public class MainSystem {
public static void main(String[] args) throws IOException {
//BufferedWriter bw=new BufferedWriter(new FileWriter("E:\\IDEAprojects\\HelloWorld\\test2\\xx.txt"));
//bw.write("hello\r\n");
//bw.write("world\r\n");
//bw.close();
BufferedReader br=new BufferedReader(new FileReader("E:\\IDEAprojects\\HelloWorld\\test2\\xx.txt"));
//一次读取一个字符数据
//int ch;
//while ((ch=br.read())!=-1){
// System.out.print((char)ch);
//}
//一次读取一个字符数组数据
int len;
char[] chs=new char[1024];
while ((len=br.read(chs))!=-1){
System.out.print(new String(chs,0,len));
}
}
}
案例:复制Java文件(字符缓冲流改进版)
public class MainSystem {
public static void main(String[] args) throws IOException {
//创建字符缓冲输入流对象
BufferedReader br=new BufferedReader(new FileReader("E:\\IDEAprojects\\HelloWorld\\test2\\src\\com\\lwh\\test\\Student.java"));
//创建字符缓冲输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter("E:\\IDEAprojects\\HelloWorld\\test2\\src\\com\\lwh\\test\\Copy.java"));
//读取数据,复制文件
//一次读取一个字符数据
//int ch;
//while((ch=br.read())!=-1){
// bw.write(ch);
//}
//一次读取一个字符数组的数据
char[] chs=new char[1024];
int len;
while ((len=br.read(chs))!=-1){
bw.write(chs,0,len);
}
//释放资源
bw.close();
br.close();
}
}
字符缓冲流特有功能
复制Java文件(字符缓冲流特有功能改进版)
public class MainSystem {
public static void main(String[] args) throws IOException {
//创建字符缓冲输入流对象
BufferedReader br=new BufferedReader(new FileReader("E:\\IDEAprojects\\HelloWorld\\test2\\src\\com\\lwh\\test\\Student.java"));
//创建字符缓冲输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter("E:\\IDEAprojects\\HelloWorld\\test2\\src\\com\\lwh\\test\\Copy.java"));
//读取数据,复制文件
//使用字符缓冲流特有功能实现
String line;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
//释放资源
bw.close();
br.close();
}
}
IO流小结
案例:集合到文件
public class MainSystem {
public static void main(String[] args) throws IOException {
ArrayList<String> array= new ArrayList<String>();
array.add("hello");
array.add("world");
array.add("java");
BufferedWriter bw=new BufferedWriter(new FileWriter("test2/xx.txt"));
for(String s:array){
bw.write(s);
bw.newLine();
bw.flush();
}
bw.close();
}
}
案例:文件到集合
public class MainSystem {
public static void main(String[] args) throws IOException {
//创建字符缓冲流输入对象
BufferedReader br=new BufferedReader(new FileReader("test2/xx.txt"));
//创建ArrayList集合对象
ArrayList<String> array =new ArrayList<String>();
String line;
while ((line=br.readLine())!=null){
//把读取到的字符串数据存储到集合中
array.add(line);
}
//释放资源
br.close();
//遍历集合
for(String s:array){
System.out.println(s);
}
}
}
复制文件的异常处理
特殊操作流
标准输入输出流
打印流
复制Java文件(字符打印流)
对象序列化流
概念
对象序列化流
对象反序列化流
例子
序列化:
反序列化:
对象序列化的三个问题
Properties
概述
Properties的特有方法
Properties和IO流结合的方法
案例:游戏次数