您的位置:首页 > 职场人生

黑马程序员——Java基础-IO流

2015-07-26 11:07 621 查看
------- android培训java培训、期待与您交流!
----------

Java中的io流
形象的理解可以类比水流,Java中io流是输送数据的方式。从不同角度进行分类有
1、根据数据流方向不同可以分为输入流(InputStream、Reader)、输出流(OutputStream、Writer)
2、根据数据流单位不同可以分为字节流(InputStream、OutputStream)、字符流(Reader、Writer)。
3、根据是否使用缓冲技术可以分为节点流(InputStream、OutputStream、Reader、Writer)、处理流(BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter)
 
流的操作规律
最痛苦的就是流对象有很多,不知道该用哪个
通过三个明确来完成
1、明确源和目的
源:输入流,InputStream、Reader
目的:输出流,OutputStream、Writer
2、操作的数据是否是纯文本
是:字符流Reader、Writer
不是:字节流 InputStream、OutputStream
3、当体系明确后,再明确要使用哪个具体的对象
通过设备来进行区分
源设备
键盘     system.in    硬盘     File    内存    ByteArrayInputStream
目的设备
控制台   system.out 硬盘     File     内存   ByteArrayOutputStream
4、最后一般都加入缓冲技术转变为处理流,主要是避免频繁访问硬盘提高数据访问效率。处理流中的字节处理流(BufferedInputStream、BufferedOutputStream)较少用,通过转换方法可以使得字节流和字符流之间能相互转化,InputStreamReader是字节流向字符流转换的桥梁,OutputStreamWriter是字符流转换成字节流的桥梁。

IO流练习代码

import java.io.*;
class TransStream
{
public static void main(String[] args)throws IOException
{
//定义获取键盘输入对象
InputStream in=System.in;
//将获取键盘输入对象转换成字符流对象
InputStreamReader isr=new InputStreamReader(in);
//定义字符流对象的缓冲区
BufferedReader bufr=new BufferedReader(isr);
//BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));//以上三句合成一句

BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));//新建处理流对象,简化书写
String line=null;
while((line=bufr.readLine())!=null)//获取键盘输入
{
if(line.equals("over"))//自定义输入结束标志
break;
bufw.write(line.toUpperCase());//将输入字符转换为大写输出
bufw.newLine();//输出换行
bufw.flush();//把缓冲区的内容刷出来
}
bufr.close();//关闭输入流
bufw.close();//关闭输出流
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java IO流