IO分类:
1、根据处理的数类型不同:字节流和字符流。
2、根据流向不同:输入流和输出流。
字节流和字符流的区别:
1、字节流读取的时候,读一个就返回。
字符流用字节流的方式读一个或多个字节,然后去查指定的编码表,将查到的字符返回。
2、字节流可以处理所有类型数据如图片mp3、avi等。
而字符流只能处理字符数据
结论:只要是纯文本数据,都要优先考虑字符流来处理。其他的都要使用字节流。
IO体系,具备的功能就只有两个:读写
字节流的处理方式:
InputStream、OutputStream
字符流的处理方式:
Reader、Writer
读一个文本文件并打印:
FileReader r = new FileReader(new File("c:\\lf.txt"));
char[] cs = new char[500];
int len = 0;
int count = 0;
while((len = r.read(cs))!=-1){
count++;
System.out.println(new String(cs,0,len));
}
r.close();
System.out.println(count);
【缓冲】
缓冲的存在是为了增强流的功能而存在的。所以建立缓冲区的时候首先要有流对象的存在。
其实缓冲内部还是用了流的功能,只不过是把读进来的数据暂时放在数组中存储罢了。
处理字符流的时候,使用的是char数组,在处理字节流的时候,使用的是byte数组
例子:
FileInputStream fis = new FileInputStream(new File("c:\\lf.txt"));
byte[] ss = new byte[1024];
while(true){
int c = fis.read(ss);
if(c == -1){
break;
}else{
System.out.println(new String(ss));
}
}
编码问题
tomcat服务器的默认编码是iso8859-
数据使用了什么样的编码方式进行编码,就需要用什么样的编码方式进行解码。