1 分别使用字符输入输出流FileWriter/FileReader
2 文件输入输出流FileInputStream/FileOutputStream
3文件缓冲流BufferedInputStream/BufferedOutputStream
4字符缓冲流BufferedWriter/BufferedReader
4种方式实现
1、
package com.qiku.day21;
import java.io.FileReader;
import java.io.FileWriter;
public class CopyDemo02 {
public static void main(String[] args) throws Exception {
//模拟复制粘贴的过程
//通过Reader 读取目标文件中的内容
//通过writer 将读取到的内容写入指定位置
FileReader reader = new FileReader("111.txt");
FileWriter writer = new FileWriter("111副本_2.txt");
long start=System.currentTimeMillis();
char[] sc = new char[1024];
while (true) {
int read = reader.read(sc);//返回读取数组里元素的个数
//qwer tyer
if (read != -1) {
//将读取的内容写入指定位置
//由于最后一次的读取,很可能没有将数组读满,会有倒数第二次读取的残留
//为例避免残留数据 需要:实际上读了几个,就写几个
writer.write(sc,0, read);
} else {//说明读完了
break;
}
}
reader.close();
writer.close();
long end=System.currentTimeMillis();
System.out.println("赋值完毕 "+(end-start));
}
}
2、
package com.qiku.day21;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import static java.lang.System.in;
public class FileInPutStreamDemo01 {
public static void main(String[] args) throws Exception {
//java.io.FileInputStream;类
//主要用于从输入流中以字节流的方式读取文件数据等
FileInputStream fileInputStream = new FileInputStream("2.txt");
//读取单个字节,并返回 -1 代表读完了
System.out.println(in.read());//in.read()里面空参 代表读一个字节
byte[] bytes=new byte[3];
//一次性最多读bytes.length个字节,并将督导的内容存入该数组 -1代表读完了
System.out.println(in.read(bytes));//读到的字节的个数
System.out.println(Arrays.toString(bytes));
System.out.println(in.available());//获取关联文件的大小
byte[] by=new byte[20];
//一次性读16个字节 从下表为1处开始
System.out.println(in.read(by,1,16));//读
System.out.println(Arrays.toString(by));
}
}
3、
package com.qiku.day21;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class BufferdeOutPutStreamDemo01 {
public static void main(String[] args) throws Exception {
//BufferedOutputStream 缓冲输出流 目的:提高输出流的写出效率
//创建一个文件输出流bos,并将文件输出流fos,交给了bos来提高写的效率
FileOutPutStream fos= new FileOutPutStream("E:\KwDownload\song\2-2.lrc");
//创建了一个缓冲输出流bos,并将文件输出流fos,交给了bos来提高
BufferedOutputStream bos = new BufferedOutputStream(fos);
FileInputStream fis =new FileInputStream("E:KwDownloadsong2.lrc");
BufferedOutputStream bis =new BufferedOutputStream(fis);
long start=System.currentTimeMillis();
while (true){
int r=bis.read();
if (r==-1){
break;
}else {
bos.write(r);
}
}
long end =System.currentTimeMillis();
System.out.println("wanbi"+(end-start));
bis.close();
bos.close();
}
}
4、
package com.qiku.yrc.work21;
import java.io.*;
public class BufferWriterAndReader {
public static void main(String[] args) throws Exception {
FileReader fr= new FileReader("dd.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw=new FileWriter("dddd.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("偶像练习生 蔡徐坤申请出战");
bw.newline();//换行符
String s=br.readLine();
System.out.println(s);
bw.close();
br.close();
}
}



