欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java FileReader与FileWriter讲解

发布时间:2025/3/15 java 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java FileReader与FileWriter讲解 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

FileReader与FileWriter讲解

Reader

  • int read()
    读取单个字符。作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff)(2个字节的Unicode码),如果已到达流的末尾,则返回 -1
  • int read(char[] cbuf)
    将字符读入数组。如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。
  • int read(char[] cbuf,int off,int len)
    将字符读入数组的某一部分。存到数组cbuf中,从off处开始存储,最多读len个字符。如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。
  • public void close() throws IOException
    关闭此输入流并释放与该流关联的所有系统资源

Writer

  • void write(int c)
    写入单个字符。要写入的字符包含在给定整数值的 16 个低位中,16 高位被忽略。 即写入0 到 65535 之间的Unicode码。
  • void write(char[] cbuf)
    写入字符数组。
  • void write(char[] cbuf,int off,int len)
    写入字符数组的某一部分。从off开始,写入len个字符
  • void write(String str)
    写入字符串。
  • void write(String str,int off,int len)
    写入字符串的某一部分。
  • void flush()
    刷新该流的缓冲,则立即将它们写入预期目标。
  • public void close() throws IOException
    关闭此输出流并释放与该流关联的所有系统资源。

读取文件

1.建立一个流对象,将已存在的一个文件加载进流。
FileReader fr = new FileReader(new File(“Test.txt”));
2.创建一个临时存放数据的数组。
char[] ch = new char[1024];
3.调用流对象的读取方法将流中的数据读入到数组中。
fr.read(ch);
4. 关闭资源。
fr.close();

package BYSSSExer1;import org.junit.Test;import java.io.File; import java.io.FileReader; import java.io.IOException;/*** @author Baiysmart* @create 2020-03-27 10:57*/ public class Reader {//对read()操作升级:使用read的重载方法//方式一@Testpublic void testFileReader1() throws IOException {//1 File类的实例化File file1 = new File("hello.txt");//2 FileReader流的实例化FileReader fr = new FileReader(file1);//3 读入的操作//read(char[] cbuf):返回每次读入cbuf数组中字符的geshu//如果达到文件末尾,返回-1char[] cbuf = new char[5];int len;while ((len=fr.read(cbuf))!=-1){for (int i =0;i<len;i++){System.out.print(cbuf[i]);}}//4 资源的关闭fr.close();}//方式二@Testpublic void testFileReader2() throws IOException {//1 File类的实例化File file2 = new File("hello.txt");//2 FileReader流的实例化FileReader fr2 = new FileReader(file2);//3 读入的操作char[] cbuf2 = new char[5];int len;while ((len=fr2.read(cbuf2))!=-1){String str = new String(cbuf2,0,len);System.out.print(str);}//4 资源的关闭fr2.close();} }

写入文件

1.创建流对象,建立数据存放文件
FileWriter fw = new FileWriter(new File(“Test.txt”));
2.调用流对象的写入方法,将数据写入流
fw.write(“atguigu-songhongkang”);
3.关闭流资源,并将流中的数据清空到文件中。
fw.close();

package BYSSSExer1;import org.junit.Test;import java.io.File; import java.io.FileWriter; import java.io.IOException;/*** @author Baiysmart* @create 2020-03-27 11:12*/ public class Writer {/*从内存中写出数据到硬盘的文件里。说明:1输出操作,对应的File可以不存在。并且不会报异常2 File对应的硬盘中的文件如果不存在,在输出的过程中,会自动创建此文件File对应的硬盘中的文件如果存在如果流使用的构造器是:FileWiter(file,false)/FileWirter(file):对原有文件进行覆盖如果流使用的构造器是:FileWriter(file,true):不会对原有文件覆盖会在原有文件内容的基础上进行追加*/@Testpublic void testFileWriter1() throws IOException {//1 提供File类的对象,指明写出到的文件File file = new File("hello1.txt");//2.提供FileWriter对象,用于数据的写出FileWriter fw = new FileWriter(file);//3,写出操作fw.write("I love pipi\n");fw.write("pipi love me");//4 资源的关闭fw.close();}@Testpublic void testFileWriter2() throws IOException {//1 提供File类的对象,指明写出到的文件File file = new File("hello1.txt");//2 提供FileWriter对象,用于数据的写出FileWriter fw = new FileWriter(file,true);//3 数据的写入fw.write("hahahahah\n");fw.write("85787587578578578");//4 资源的关闭fw.close();} }

实现文件的复制

package BYSSSExer1;import org.junit.Test;import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;/*** @author Baiysmart* @create 2020-03-27 11:33*/ public class CopyFileTest {@Testpublic void testFileReaderFileWriter() throws IOException {//1 创建File类的对象,指明读入和写出的文件File srcFile = new File("hello1.txt");File destFile = new File("hello2.txt");//2 创建输入流和输出流的对象FileReader fr = new FileReader(srcFile);FileWriter fw = new FileWriter(destFile);//3 数据的读入和写出操作char[] cbuf = new char[5];int len;while ((len=fr.read(cbuf))!=-1){fw.write(cbuf,0,len);}//4 资源的关闭fr.close();fw.close();}}

注意点

字符流操作字符,只能操作普通文本文件。最常见的文本文件:.txt,.java,.c,.cpp 等语言的源代码。尤其注意.doc,excel,ppt这些不是文本文件。

后续将对IO流进行全面的总结以及详细解释

总结

以上是生活随笔为你收集整理的Java FileReader与FileWriter讲解的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。