[第四季]14.字节流转换为字符流并讲解打印流

xiaoxiao2021-02-28  160

[第四季]14.字节流转换为字符流并讲解打印流 1.利用BufferedReader来一行一行读取文本文件 ①new 一个FileReader,命名为fr,位置是”D:\a.txt” ②用BufferedReader包装一下,命名为br. ③新建一个str为空字符串,声明一个int i,初始值为1. ④开始按行读取字符串并打印在屏幕上,每打印一行i就++一行.

————知识补充:不要仅仅局限于代码—————- 补充:这些知识真的是我第一次接触,那我笔记只能记得很详细,但是那对知识的理解就没有意义了,因为以后不会有人给我笔记,所以我学会了查看API文档,首先找到java.IO包,然后找到BufferedReader类,再找到下面的方法readline(),这里我们的目的是基于代码来和笔记来敲代码. 笔记指导我们干什么事情,结合代码思考接下来怎么做,而不是完全依靠笔记,否则是没有成长的. 最后今天最最重要的事情这里要重复一下,一定要学会看api,这样就可以弄懂代码什么意思了. ————知识补充:不要仅仅局限于代码—————-

————知识补充:BufferedReader—————- public class BufferedReader extends Reader从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。 我们可以看到,关键在于高效两个字,BufferedReader可以进行高效的读取,想起老师在课堂上.

————知识补充:BufferedReader—————-

⑤注意关闭fr.

快学到最后了,该复习一下那些是字符流,哪些是字节流了.

明白了上面自己流和字符流的区别,那么总结一下第1小结的内容. 首先新建字符流FileReader fr 然后为了高效读取,把字符流FileReader fr包装成BufferedReader br, 然后新建String str为空字符,这个为接下来做准备. 接下来将BufferedReader br一行一行的读取到str中,具体方法参见API(java.io包),并打印出来.

做了上面的总结,接下来的代码看起来也应该轻松很多.

2.将字节流转换为字符流InputStreamReader,OutputStreamWriter 接着上面的话题,我们完全靠笔记是不行的,我们在API里找找这两个是什么东西 ①new一个字节流FileOutputSteam,位置么自己选,名字命名为fos 注意:因为这个位置就算没有,也会自己创建,当然也不能够找个不可能的位置,比方说本来没有A盘,搞个位置是在A盘的某个位置(“d:\b.txt”), ②准备字符串,”我爱我的祖国” ③将str写入fos中. ————知识补充:FileOutputSteam的Write方法—————- write(byte[] b) 将 b.length个字节从指定的字节数组写入此文件输出流。 ————知识补充:FileOutputSteam的Write方法—————- ④将字节流FileOutputSteam fos转换成字符流OutputStreamWriter osw

————知识补充:OutputStreamWriter —————- 首先查看API文档,看看这个东西的继承关系. java.lang.Object java.io.Writer(字符流) java.io.OutputStreamWriter(字符流) 这个东西他很奇怪,既有Steam,又有Writer,在上面的继承关系可以看见,这个是属于字符流的. 就是这样的——–猜测是不是这样:继承于谁就在前面加上修饰词———-恩,就是这样的.

write(String str, int off, int len) 写一个字符串的一部分。

接下来补充一下outputStreamWriter的构造函数 OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。

我们可以看见OutputStream这个类,我们点进去看看,看见已知直接子类: ByteArrayOutputStream , FileOutputStream , FilterOutputStream , ObjectOutputStream , OutputStream , PipedOutputStream. 上面我们创建的是FileOutputStream,所以,我们可以直接根据FileOutputStream创建. ————知识补充完了我们继续 —————-

3.PrintStream,PrintWriter,通过打印输出的方式,往流中输出数据 这个我就不写代码了,这里我说说查看API文档怎么得来的代码吧. 首先我要用PrintWriter这个类, ①首先我们找到API文档中的PrintWriter; 我们可以看见构造函数中有这个,

PrintWriter(Writer out) 创建一个新的PrintWriter,没有自动线冲洗。

然后看见Writer已知直接子类: BufferedWriter , CharArrayWriter , FilterWriter , OutputStreamWriter , PipedWriter , PrintWriter , StringWriter

就知道要可以使用PrintWriter(FilterWriter out)的方法.

②同样的PrintStream,我们先查看构造函数: PrintStream(OutputStream out) 创建一个新的打印流。 我们再看已知直接子类: ByteArrayOutputStream , FileOutputStream , FilterOutputStream , ObjectOutputStream , OutputStream , PipedOutputStream 我们知道可以用PrintStream(FileOutputStream)创建. 创建了PS流之后,接下来我们要打印,查看文档我们看见:


print(char c) 打印一个字符


所以最后的代码是ps.print(“今天天气不错”);

*****笔记结束**

6.利用BufferedReader来一行一行读取文本文件

package javastudy; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Test { public static void main(String[] args) throws IOException { //6.利用BufferedReader来一行一行读取文本文件 FileReader fr=new FileReader("D:\\a.txt"); BufferedReader br=new BufferedReader(fr); String str=""; int i=1; while((str=br.readLine())!=null) { System.out.println(i+"\t"+str); i++; } fr.close(); //7.将字节流转换为字符流InputStreamReader,OutputStreamWriter } }

7.将字节流转换为字符流InputStreamReader,OutputStreamWriter

package javastudy; //import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class Test { public static void main(String[] args) throws IOException { //7.将字节流转换为字符流InputStreamReader,OutputStreamWriter FileOutputStream fos=new FileOutputStream("d:\\b.txt"); String str="我爱我的祖国!"; fos.write(str.getBytes()); OutputStreamWriter osw=new OutputStreamWriter(fos); osw.write("我爱北京天安门!"); osw.close(); fos.close(); } }

8.PrintStream,PrintWriter,通过打印输出的方式,往流中输出数据,

package javastudy; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; public class Test { public static void main(String[] args) throws IOException { //8.PrintStream,PrintWriter,通过打印输出的方式,往流中输出数据,注意两者的区别。 //字节打印流,和字符打印流 FileOutputStream fos=new FileOutputStream("d:\\b.txt"); //往里面写东西,通过打印的方式 PrintStream ps=new PrintStream(fos); ps.print("今天天气不错"); ps.close(); fos.close(); //接下来讲PrintWriter } }

接下来讲PrintWriter

package javastudy; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class Test { public static void main(String[] args) throws IOException { //接下来讲PrintWriter FileWriter fw=new FileWriter("d:\\234.txt"); PrintWriter pw=new PrintWriter(fw); pw.print("明天天气会怎么样呢?"); pw.close(); fw.close(); } }
转载请注明原文地址: https://www.6miu.com/read-60479.html

最新回复(0)