java io(一)
2016-04-07 23:54
701 查看
IO分类:
1、根据处理的数类型不同:字节流和字符流。
2、根据流向不同:输入流和输出流。
字节流和字符流的区别:
1、字节流读取的时候,读一个就返回。
字符流用字节流的方式读一个或多个字节,然后去查指定的编码表,将查到的字符返回。
2、字节流可以处理所有类型数据如图片mp3、avi等。
而字符流只能处理字符数据
结论:只要是纯文本数据,都要优先考虑字符流来处理。其他的都要使用字节流。
IO体系,具备的功能就只有两个:读写
字节流的处理方式:
InputStream、OutputStream
字符流的处理方式:
Reader、Writer
读一个文本文件并打印:
【缓冲】
缓冲的存在是为了增强流的功能而存在的。所以建立缓冲区的时候首先要有流对象的存在。
其实缓冲内部还是用了流的功能,只不过是把读进来的数据暂时放在数组中存储罢了。
处理字符流的时候,使用的是char数组,在处理字节流的时候,使用的是byte数组
例子:
编码问题
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-
数据使用了什么样的编码方式进行编码,就需要用什么样的编码方式进行解码。相关文章推荐
- java中静态变量和实例变量到底有什么区别
- JAVA net 笔记
- Java学习第四天总结循环语句
- Java基础 — JDBC
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- Java基础 — Socket
- [JAVA · 初级]:21.多线程
- spring的IOC和AOP详细讲解
- spring的IOC和AOP详细讲解
- spring的IOC和AOP详细讲解
- [JAVA · 初级]:20.IO流技术
- (转) Java多线程同步与异步
- JAVA线程池shutdown和shutdownNow的区别
- java.lang.IllegalThreadStateException异常原因解析——同一个线程不能重复调用start方法
- [编程题]数独(JAVA)
- openjdk编译
- Java线程池ThreadPoolExecutor简介(一)
- 安卓学习之路 -- JAVA多线程下载
- [JAVA · 初级]:19.容器类
- hibernateTemplate不再出现:spring整合报错getFlushMode is not valid without active transaction