复习了一下IO,来几句总结:
以后说流,都是站在程序角度上来说的。
节点流是两侧的流,直接套在数据源或者程序上。
处理流是套在两个流之间的(适配器效果)
字符流就是高级的流,用于(封装出上层对象)以供使用。
FileRead可以读取汉字。InputStream只能读取单字节。读取汉字会出现问号。
读取字符的
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* FileRead可以读取汉字
*
* @author Kevin Huang
*
*/
public class TestFileInputStream {
public static void main(String[] args){
//记录当前读取字符的下标
int b=0;
FileReader in = null;
try {
//根据一个文件路径构件一个字节流
in = new FileReader("H:\\个人练习资料(项目)\\个人练习WorkPlace\\BeijingSXT\\JavaIO\\src\\TestFileInputStream.java");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
long num=0;
try {
while((b=in.read())!=-1){
System.out.print((char)b);
num++;
}
System.out.println("共读取"+num);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
读取字节的
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TestFileReadStream {
public static void main(String[] args){
//记录当前读取字符的下标
int b=0;
FileInputStream in = null;
try {
//根据一个文件路径构件一个字节流
in = new FileInputStream("H:\\个人练习资料(项目)\\个人练习WorkPlace\\BeijingSXT\\JavaIO\\src\\TestFileInputStream.java");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
long num=0;
try {
while((b=in.read())!=-1){
System.out.print((char)b);
num++;
}
System.out.println("共读取"+num);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}