JAVA集合框架:[44]流的需求分析案例

2025-10-17 03:45:08

需求1:复制一个文本文件

①明确源和目的;源:inputstream reader。目的:outputstream writer

②是否是纯文本?是!源:reader。目的:writer

③明确具体设备:源:硬盘:file。目的:硬盘,file

filereader fr=new filereader("a.txt");

filewriter fw=new filewriter("b.txt");

④需要额外功能吗?需要:需要高效。。。

bufferedreader bufr=new bufferedreader(new filereader("a.txxt"));

bufferedwriter bufw=new bufferedwriter(new filewriter("b.txt"));

======================

需求2:读取键盘录入信息,并写入到一个文件中

①明确源和目的;源:inputstream reader。目的:outputstream writer

②是否是纯文本?是!源:reader。目的:writer

③明确具体设备:源:键盘:system.in。目的:硬盘,file

inputstream in=system.in;

filewriter fw=new filewriter("b.txt");

④需要额外功能?

需要:转换。将字节流转成字符流,因为明确的源是reader,这样操作文本数据更便捷,所以要将已有的字节流转成字符流

使用字节--》字符。inputstreamreader

inputstreamreader isr=new inputstreamreader(system.in);

filewriter fw=newfilewriter("b.txt");

还需要高效

bufferreader bufr=new bufferedreader(new inputstreamreader(system.in));

bufferedwriter bufw=new bufferedwriter(new filewriter("b.txt"));

需求三:将一个文本文件数据显示在控制台上

1.明确源和目的。源:inputstream reader;目的:outputstream writer

2.是否是纯文本?是:源,reader;目的writer

3,明确具体设备。源:硬盘:file;目的:控制台:system.in

filereader fr=new filereader("a.txt");

outputstream out =system.out;

4.需要额外功能吗?

需要:转换。

filereader fr=new filereader("a.txt");

outputstreamwriter osw=new outputstreamwriter(system.out);

还需要高效

bufferedreader bufr=new bufferedreader(new filereader("a.txt"));

bufferedwriter bufw=new bufferedwriter(new outputstreamwriter(system.out));

需求四:读取键盘录入数据,显示在控制台上

1.明确源和目的。源:inputstream reader;目的:outputstream writer

2.是否是纯文本?否!源:inputstream ;目的:outputstream

3.明确设备。源:键盘 system.in ;目的:控制台:system.out

inputstream isr=system.in;

outputstream osr=system.out;

4.是否需要额外功能?

需要转换:因为都是字节流,但是操作的却是文本数据,所以使用字符流操作更为便捷

inputstreamreader isr=new inputstreamreader(system.in);

outputstreamwriter osr=new inputstreamwriter(system.out);

需要高效

bufferedreader bufr=new bufferedreader(new inputstreamreader(system.in));

bufferedwriter bufw=new bufferedwriter(new outputstreamreader(system.out));

=================================

需求⑤:将一个中文字符串数据安装指导的编码表写入到一个文本文件中

1.目的:outputstream writer

2.是纯文本:writer

3.设备:硬盘file

filewriter fw=new filewriter("a.txt");

fw.wrrter("你好");

注意:既然需求中已经明确了指定编码表的动作,那就不可以使用filewriter,因为

filewriter内部是使用默认的本地码表。只能使用其父类outputstreamwriter

outputstreamwriter 接收一个字节输出流对象,既然是操作文件,那么该对象是fileoutputstream

outputstreamwriter osw=new outputstreamwriter(new fileoutputstream("a.txt"),charsetname);

需要高效吗?

bufferedwriter bufw=new bufferedwriter(new outputstreamwriter(new outputstream("a.txt"),"utf-8"));

什么时候使用转换流拟?

1.源或者目的的对应设备是字节流,但是操作的却是文本数据,可以使用转换流作为桥梁,提高对文本操作的便捷。

2.一旦操作文本涉及到具体的编码表时,必须使用转换流

(共篇)上一篇:流的操作
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢