输入流和输出流相对于内存而言
下载文件时----》【硬盘1------》内存1----》内存2-----》硬盘2】
一个字符两个字节
字节流:视频、声音、图片等二进制格式文件(比如word文件,有格式要求)
字符流:纯文本文件
各有各的优势:字节流是万能的,字符流读的比较快
Java语言中所有的字节流以Stream结尾,字符流以Writer(输出)或者Reader(输入)结尾
例子:字节流 文件的Copy
class Copy1{
public static void main(String[] args) throws Exception {
//创建输入流
FileInputStream io1=new FileInputStream("E:/first.txt");
//创建文件字节输出流
FileOutputStream io2=new FileOutputStream("E:/copyDanglog.txt");
//一边读 ,一边写
int temp=0;
byte[] bt=new byte[1024]; //1kb
while((temp=io1.read(bt))!=-1){
io2.write(bt,0,temp);
}
//为保证数据完全写入硬盘,应该刷新一下
io2.flush();
//关闭流
io1.close();
io2.close();
}
}
输入流的 read()方法
输出流的 write()方法
例子:字符流 文件的Copy
class Copy2{
public static void main(String[] args) throws Exception {
FileReader f=new FileReader("E:/Test4.java");
FileWriter fw=new FileWriter("E:/China");
//一次读1kb
char[] ch=new char[514];
//边读边写
int temp=0;
while((temp=f.read(ch))!=-1){
//写
fw.write(ch,0,temp);
}
//刷新
fw.flush();
//关闭
f.close();
fw.close();
}
}
更加详细的操作请参见 链接:https://blog.csdn.net/MAGIC_JSS/article/details/51475923