代码示例
package IOTest;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
/**
* ClassName: FileReaderDemo <br/>
* Description: <br/>
* date: 2021/8/3 14:52<br/>
*
* @author yiqi<br />
* @since JDK 1.8
*/
public class FileReaderDemo {
public static void main(String[] args) throws Exception {
//创建文件输入流
FileReader fr = new FileReader("src/IOTest/test.txt");
//创建文件输出流
FileWriter fw = new FileWriter("src/IOTest/clone.txt");
//设置文件 一次读取 长度 是 char[] 不是 byte[]
char[] buffer = new char[1024];
//读取数据
while (true){
int len = fr.read(buffer);
if (len == -1){
break;
}
fw.write(buffer,0,len);
//刷新缓存 可写可不写
fw.flush();
}
//关闭流
fr.close();
fw.close();
}
}
转换字符流
代码示例
package IOTest;
import java.io.*;
/**
* ClassName: StringReaderStream <br/>
* Description: <br/>
* date: 2021/8/3 22:07<br/>
*
* @author yiqi<br />
* @since JDK 1.8
*/
public class StringReaderStream {
public static void main(String[] args) throws Exception {
//创建输入流 编码格式注意统一 下同
InputStreamReader isr = new InputStreamReader(new FileInputStream("src/IOTest/test.txt"),"utf-8");
//创建输出流
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("src/IOTest/clone.txt"),"utf-8");
//读写数据
//规定一次读取多少
char[] buffer = new char[1024];
while (true){
int len = isr.read(buffer);
if (len == -1){
break;
}
osw.write(buffer,0,len);
osw.flush();
}
//关闭流
isr.close();
osw.close();
}
}
缓冲字符流
代码示例
package IOTest;
import java.io.*;
/**
* ClassName: BufferReaderDemo <br/>
* Description: <br/>
* date: 2021/8/3 22:53<br/>
*
* @author yiqi<br />
* @since JDK 1.8
*/
public class BufferReaderDemo {
public static void main(String[] args) throws Exception {
//创建输入流
BufferedReader br = new BufferedReader(new FileReader("src/IOTest/test.txt"));
//创建输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("src/IOTest/clone.txt"));
//读写操作
while (true){
String str = br.readLine();
if (str == null){
break;
}
//写
bw.write(str);
//换行 不要忘记,要不然全部一行
bw.newLine();
//刷新缓冲区
bw.flush();
}
//关闭流
br.close();
bw.close();
}
}
打印字符流
代码示例
package IOTest;
import java.io.*;
/**
* ClassName: BufferReaderDemo <br/>
* Description: <br/>
* date: 2021/8/3 22:53<br/>
*
* @author yiqi<br />
* @since JDK 1.8
*/
public class BufferReaderDemo {
public static void main(String[] args) throws Exception {
//创建输入流
BufferedReader br = new BufferedReader(new FileReader("src/IOTest/test.txt"));
//创建输出流
PrintWriter pw = new PrintWriter(new FileWriter("src/IOTest/clone.txt"));
//读写操作
while (true){
String str = br.readLine();
if (str == null){
break;
}
//写在一行
// pw.write(str); || pw.print(str);
//换行写
pw.println(str);
//换行 不要忘记,要不然全部一行
//刷新缓冲区
pw.flush();
}
//关闭流
br.close();
pw.close();
}
}
阶段性总结
我带着大家已经写了很多种 流 了,下面还剩一 种流我就只讲其用法,望大家自己尝试。
最为关键的是 掌握 如何创建 流,有了流之后就是调用 api 的事情了。
字符串字符流