废话少说,先放代码
package com.NicMark.Writerr;
import java.io.BufferedWriter;
import java.io.FileWriter;
public class BufferedWriter_ {
public static void main(String[] args) throws Exception{
String filePath ="C:\Users\DELL\Desktop\IO\bufferedWriter.txt";
//创建BufferedWriter
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));
bufferedWriter.write("hello,NicMark");
//插入一个换行
bufferedWriter.newline();
bufferedWriter.close();
}
}
import java.io.BufferedReader;
import java.io.FileReader;
public class BufferedReader_ {
public static void main(String[] args) throws Exception {
String filePath = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
//bufferedReader在读取的时候底层是在使用FileReader
String line;//按行读取,效率高
line = bufferedReader.readLine();//返回字符串
//当返回null时,表示读取完毕
while ((line = bufferedReader.readLine())!=null){
System.out.println(line);
}
//关闭流 只需要关闭bufferedreader
bufferedReader.close();
}
}
BufferedReader也好 BufferedWriter也好,其本质是包装流,意在包装输出流或输入流,使其底层的输入流输出流更加强大,拓展功能更加多,效率更高。
我们先看BufferedReaderpublic class BufferedReader_ {
public static void main(String[] args) throws Exception {
String filePath = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
//bufferedReader在读取的时候底层是在使用FileReader
String line;//按行读取,效率高
line = bufferedReader.readLine();//返回字符串
//当返回null时,表示读取完毕
while ((line = bufferedReader.readLine())!=null){
System.out.println(line);
}
//关闭流 只需要关闭bufferedreader
bufferedReader.close();
}
}
在new对象的时候,我们需要将文件的类型对应的流new在Bufffered—里面
String filePath = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
在读取文件的内容时,我们可以使用其中readLine()方法
String line;//按行读取,效率高
line = bufferedReader.readLine();
而readLine()的返回值是字符串,当其返回值是null的时候,报名文件中已无任何文本内容,这作为我们判断是否停止循环的条件
while ((line = bufferedReader.readLine())!=null){
System.out.println(line);
}
最终,我们关闭Buffered流。我们关闭它的表层流,他内部的底层流也会自动关闭。
bufferedReader.close();BufferedWriter
public class BufferedWriter_ {
public static void main(String[] args) throws Exception{
String filePath ="C:\Users\DELL\Desktop\IO\bufferedWriter.txt";
//创建BufferedWriter
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));
bufferedWriter.write("hello,NicMark");
//插入一个换行
bufferedWriter.newline();
bufferedWriter.close();
}
}
与BufferedReader一样,在new的时候要将对应文件所相关的流new在Buffered里面
String filePath ="C:\Users\DELL\Desktop\IO\bufferedWriter.txt";
//创建BufferedWriter
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));
我们可以调用其中的wirte()方法,在括号内写入相应的字符串
bufferedWriter.write("hello,NicMark");
//插入一个换行
bufferedWriter.newline();
bufferedWriter.close();
再通过newline()插入一个换行符,使其换行,否则,所有的内容将会在文件里以一行的形式展示。
以下,是利用Buffered来拷贝文本文件的代码package com.NicMark.Writerr;
import java.io.*;
public class BufferedCopy_ {
public static void main(String[] args) {
String srcFile = "C:\Users\DELL\Desktop\IO\BUFFEREDREADER.txt";
String desFile = "C:\Users\DELL\Desktop\IO\file\None.txt";
BufferedReader br = null;
BufferedWriter bw = null;
String line;
try {
br = new BufferedReader(new FileReader(srcFile));
bw = new BufferedWriter(new FileWriter(desFile));
//读取
while ((line = br.readLine())!=null){
//没读取一行,就录入一次
bw.write(line);
//换行!!!!!
//插入一个换行
bw.newline();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bw!=null);
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
谨记
如若想拷贝二进制文件,如(音频,视频,照片等)
我们需要用到
new BufferedInputStream(new FileInputStream()) new BufferedOutputStream(new FileOutputStream())
相应的while循环里将不再是readLine()而是read(),返回值变为int型
这节内容到此结束江湖不远,我们有缘再见



