2020.8.3
一、今日学习内容
1、缓冲流
缓冲流的原理是将数据先缓冲起来,然后一起写入或读取出来,使用缓冲流读写文件非常高效,常用的缓冲流有以下几种: BufferedReader. BufferedWriter. BufferedInputStream和BufferedOuputStream。
(1) BufferedReader 与BufferedWriter
BufferedReader属于字符流,如果要想使用BufferedReader就需要将一个字节流变成字符流,为了解决这样的问题,在Java中提供了以下两个转换类。
#将输入的字节流变为字符流: InputStreamReader.
#将输出的字符流变为字节流: OutputStreamWriter.
在BufferedReader类中提供了一个专门的读取操作。
public String readLine() throws IOException
示例:使用BufferedReader读取内容
import java.io. BufferedReader; import java. io. FileInputStream; import java.io. IOException; import java.io. Inputst reamReader; public class Buf feredReaderDemo { public static void main (String[] args) throws IOException { read() ; } public static void read() throws IOException { //创建对象 BufferedReader read = new BufferedReader (new InputstreamReader (new FileInputStream ("D: /Hello. txt"))) ; String line= null; //读数据 while ((line=read. readLine()) !=null) { System.out. println(line) ; } //关闭 read.close() ; } }
示例:使用BufferedReader写数据
import java. io.BufferedWriter; import java. io. FileOutputStream; import java .io. IOException; import java. io. OutputStreamwriter; public class BufferedWriterDemo { public static void main(String[] args) throws IOException { write () ; } public static void write() throws IOException { //创建对象 BufferedWriter w= new BufferedWriter (new OutputStreamWriter (new FileOutputStream("D:/Hello.txt"))) ; //写数据 w.write ("Hello") ; w. write ("Java") ; //关闭 w.close() ; } }
(2)BufferedInputStream 与BufferedOuputStream
使用BufferedInputStream 和BufferedOutputStream 通常用来读取或写入影像数据,例如图片、影片等。
示例:使用BufferedInputStream和BufferedOuputStream读写图片
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class BufferedInputOutput { public static void main(String[] args)throws IOException { outIn(); } public static void outIn()throws IOException{ BufferedInputStream in=new BufferedInputStream(new FileInputStream("F:/test.png")); BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream("F:/test2.png")); byte[] buf =new byte[1024]; int len=-1; while((len=in.read(buf))!=-1) { out.write(buf,0,len); } out.close(); in.close(); } }
2、Scanner类
Jdk1.5推出了Scanner 类,该类主要用来从键盘输入数据,也就是说,用户可以使用键盘进行灵活地输入,其中,Scanner 类是在java.util包中定义的。
示例: Scanner 类的应用
import java .util. Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner con = new Scanner (System.in) ; //从键盘读入字符串 String line = con.nextLine() ; /从键盘读入整型 int i=con.nextInt() ; //从键盘读入浮点型 double d =con.nextDouble() ; System. out.println(line) ; System.out.println(i) ; System. out. println(d) ; //关闭 con.close() ; } }
二、遇到的问题
掌握不熟练,不太会用到题目中。
三、明日计划
继续学习第12章