第一章:IO概述_IO流概述及分类
1.字节流:以“字节”的方式操作数据的。可以读、写任何文件。
a.输出流:OutputStream(抽象类)三种输出方法
1).write(int b):输出一个字节
2)write(byte[] arr):输出一个字节数组
3)write(byte[] arr, int off,int len):输出字节数组的一部分。
|--FileOutputStream(子类)
b.输入流:InputStream(抽象类)
|--FileInputSream(子类)
2.字符流:以“字符”的方式操作数组。只能读、写纯文本文件。
a.输出流:Writer(抽象类)
|--OutputStreamWriter(转换流)
|--FileWriter(子类)
b.输入流:Reader(抽象类)
|--OutputSreamReader(转换流)
|--FileReader(子类)
第一章:字节流_输入流_InputStream的读取方式:
1.读取的方法:
a.int read():读取一个字节
b.int read(byte[] byteArray):读取一个byte[]数组。
2.子类FileInputStream的使用:
a.构造方法:
1.FileInputStream(String filename):
2.FileInputStream(File filename):
注意:
1.构造时,文件必须存在,否则抛异常
2.构造时,只能构造在文件上,不能构造在目录上。
第三章:字符流_概述
1.“字符流”是读写“纯文本文件”。使用“字节流”只能一次读写一个字节,但对于其他国家的文字,很多都是两个、多个字节表示一个字符,这样使用“字节流”操作就很不方便,所以Java又提供了“字符流”。
2.“字符流”也是基于“字节流”的。
第三章:字符流_输出流_Writer的输出方法
1.五种输出方法
1).write(int c):输出一个字符。
2).write(char[] arr):输出一个字符数组;
3).write(char[] arr,int off,int len):输出字符数组的一部分;
4).write(String s):输出一个字符串。
5).write(String s,int off,int len):输出字符串的一部分。
2.子类FileWriter的构造方法:(四种构造方法)
1).FileWriter(String fileName) 构造一个给定文件名的FileWriter对象。
2).FileWriter(String fileName, boolean append) 构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
3).FileWriter(File file) 给一个File对象构造一个FileWriter对象。
4).FileWriter(File file, boolean append) 给一个File对象构造一个FileWriter对象。
第三章:字符流_输出流_Writer的追加写入及换行
1.追加写入:构造方法
FileWriter(String(File) name,boolean append):
第二个参数为true,即为追加写入
2.换行:
out.write("\r\n")
第三章:字符流_输入流_Reader的读取方法
1.Reader的读取方法
1. int read():读取一个字符;
2. int read(char[ ] chArray):读取一个字符数组
2.子类FileReader的构造方法
1.FileReader(String fileName);
2.FileReader(File fileName);
public class Demo{
public static void main(String[] args) throws Exception{
//1.构造一个输入流
FileReader in = new FileReader("xxxx.txt");
//2.一次读取一个字符
int c = 0;
while((c=in.read())!=-1){
system.out.println("转换为字符:"+(char)c);
}
//3.一次读取多个字符
char[] chArray = new char[3];
int len=0;
while((len=in.read(chArray))!=-1){
system.out.println(new string(chArray,0,len));
}
}
}
第四章:IO异常的处理_JDK7前的处理方式
public static void main(String[] args) {
FileWriter out = null;
try {
out = new FileWriter("demo05.txt");
out.write("哈啰");
} catch (IOException e) {
e.printStackTrace();
}finally {
if(out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
第四章:IO异常的处理_JDK7后的处理方式
public class Demo {
public static void main(String[] args) {
try(FileWriter out = new FileWriter("demo06.txt")){
out.write("呵呵");
} catch (IOException e) {
e.printStackTrace();
}
//当try...catch...执行完毕后,out会自动关闭。不需要我们自己关闭了
}
}
字节流和字符流小结:
1)字节流:只要是复制文件,使用字节流
a.输出流:OutputStream(抽象类)三种输出方法
1).write(int b):输出一个字节
2).write(byte[] arr):输出字节数组
3).write(byte[] arr,int off,int len):输出字节数组的一部分。
b..输入流:InputStream(抽象类)(两种读取的方法)
1).int read():读取一个字节;
2).int read(byte[] byteArray):读取一个字节数组。
2)字符流:操作纯文本文件,使用字符流。
a.输出流:Writer(抽象类)(五种输出的方法)
1).write(int c):输出一个字符
2).write(char[] charr):输出字符数组
3).write(char[] arr,int off,int len):输出字符数组的一部分
4).write(String s):输出一个字符串。
5).write(String s,int off,int len):输出字符串的一部分
b.输入流:Reader(抽象类)(两种读取的方法)
1).int read():读取一个字符;
2).int read(char[] chArray):读取一个字符数组。
第五章:属性集_Properties类概述
1).java.util.Properties(类):它是一个“Map”集合类,但他内部包含了一些和IO流结合使用的方法,
可以很方便的操作“配置文件”。
2).什么是“配置文件”:指程序在运行时存储的一些用户数据的文件。它就是纯文本文件。在世界范围内,有一个对于配置文件的通用的规范,配置文件的内部格式:
配置文件.txt
--------------------------------------
名1 = 值
名2 = 值
...
名n = 值
由于这种结构非常匹配Map的结构,所有Java中提供了Map的类来结合IO流,操作这种配置文件。
第五章:属性集_Properties类与流相关的方法介绍
1).store(Writer out,String comm):将集合中的数据写入到配置文件;
2).load(Reader in):将文件中的数据读取到集合中。