java基础第24天


1:字节流

(1)与字符流类似。
InputStream
FileInputStream
BufferedInputStream


OutputStream
FileOutputStream
BufferedOutputStream
(2)字节流复制文件
A:复制文本文件
B:复制图片,视频,音频等二进制文件
(3)复制MP3,并测试时间。(四种方式复制mp3所用的时间)


2:转换流
(1)在操作字节流数据的时候,为了使用高效字符流的一些方法,
  需要把字节流进行转换。这个时候java就提供了转换流。
(2)标准的键盘录入和控制台输出流对象
System.in -- InputStream
System.out -- PrintStream -- OutputStream(PrintStream的父类)
(3)字符流的由来
字符流 = 字节流 + 编码表


3:复制数据的操作规律
A:文本文件 -- 文本文件
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt");


String line = null;
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}


bw.close();
br.close();


B:文本文件 -- 控制台输出
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));


String line = null;
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}


bw.close();
br.close();


C:键盘录入 -- 文本文件
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt");


String line = null;
while((line=br.readLine())!=null)
{
//如果数据源是键盘录入,一定要自定义结束标记
if("over".equals(line)
{
break;
}


bw.write(line);
bw.newLine();
bw.flush();
}


bw.close();
br.close();



D:键盘录入 -- 控制台输出
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));


String line = null;
while((line=br.readLine())!=null)
{
//如果数据源是键盘录入,一定要自定义结束标记
if("over".equals(line)
{
break;
}


bw.write(line);
bw.newLine();
bw.flush();
}


bw.close();
br.close();


  规律:
A:明确操作数据源和目的地的体系
数据源:
从数据源是读取数据
InputStream
Reader
目的地:
把数据写入到目的地
OutputStream
Writer


B:明确具体的数据源和目的地是否是文本文件
数据源:
是:Reader
不是:InputStream
目的地:
是:Writer
不是:OutputStream


C:明确操作的具体的数据所在地
数据源:
硬盘上的文本文件 FileReader
键盘录入数据(System.in) InputStream -- InputStreamReader
目的地:
硬盘上的文本文件 FileWriter
控制台输出(System.out) OutputStream -- OutputStreamWriter


FileReader
FileWriter
InputStreamReader
public InputStreamReader(InputStream in)创建一个使用默认字符集的 InputStreamReader。


字符流 = 字节流 + 编码表;


InputStreamReader
OutputStreamWriter


D:是否使用高效
是:用带Buffered流对象
不是:不用带Buffered流对象


BufferedReader br = new BufferedReader(数据源);
BufferedWriter bw = new BufferedWriter(目的地);


String line = null;
while((line=br.readLine())!=null)
{
//如果数据源是键盘录入,一定要自定义结束标记
if("over".equals(line)
{
break;
}


bw.write(line);
bw.newLine();
bw.flush();
}


bw.close();

br.close();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值