【java学习—十二】文件字符流(3)

编程入门 行业动态 更新时间:2024-10-10 09:15:38

【java学习—十二】文件<a href=https://www.elefans.com/category/jswz/34/1771063.html style=字符流(3)"/>

【java学习—十二】文件字符流(3)

文章目录

  • 1. 文件字符输入流
  • 2. 文件字符输出流
  • 3. 字符流完成拷贝文件


1. 文件字符输入流

    
    读取文件操作步骤 :

(1)建立一个流对象,将已存在的一个文件加载进流。

	FileReader fr = new FileReader(“Test.txt”);

(2)创建一个临时存放数据的数组。

	char[] ch = new char[1024];

(3)调用流对象的读取方法将流中的数据读入到数组中。

	fr.read(ch);

注意区别:前一篇文章讲的字节流,其中创建的是byte数组;而字符流,创建的是char数组。

举例:

    将D:/test/abc/tt1.txt输入到java控制台

package day12;import java.io.FileNotFoundException;
import java.io.FileReader;public class Test2 {public static void main(String[] args) {Test2.testFileReader("D:/test/abc/tt1.txt");}/*** 文件字符输入流* 在读取文件时,必须保证该文件已存在,否则出异常。* @param inPath*/public static void testFileReader(String inPath) {try {FileReader fr = new FileReader(inPath);//创建文件字符输入流的对象char[] c = new char[10];//创建临时存数据的字符数组int len = 0;//定义一个输入流的读取长度while((len = fr.read(c)) != -1) {System.out.println(new String(c, 0, len));}fr.close();//关闭流} catch (Exception e) {e.printStackTrace();}}}

运行结果:

2. 文件字符输出流

举例:
    在将字符串“hello world”输出到一个名为tt5.txt文件中

package day12;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class Test2 {public static void main(String[] args) {Test2.testFileWriter("hello world", "D:/test/abc/tt5.txt");//第二个参数是要输出的文件,电脑中应该没有该文件,因为会自动创建}/*** 文件字符输出流FileWriter* @param text 输出的内容* @param outPath 输出的文件*/public static void testFileWriter(String text, String outPath) {try {FileWriter fw = new FileWriter(outPath);fw.write(text);//写到内存中fw.flush();//把内存的数据刷到硬盘中fw.close();//关闭流} catch (IOException e) {e.printStackTrace();}}}

运行结果:
    会在D:/test/abc/目录下创建一个tt5.txt文件,并且该文件的内容是字符串“hello world”。

3. 字符流完成拷贝文件

举例:
    将D:/test/abc/tt5.txt拷贝到D:/test/abc/cc/tt5.txt。(cc目录下的tt5.txt文件会在程序执行中自己创建)

package day12;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class Test2 {public static void main(String[] args) {Test2.copyFile("D:/test/abc/tt5.txt", "D:/test/abc/cc/tt5.txt");}/*** 字符流完成拷贝文件,字符流只适合操作内容是字符文件* @param inPath* @param outPath*/public static void copyFile(String inPath, String outPath) {try {FileReader fr = new FileReader(inPath);FileWriter fw = new FileWriter(outPath);char[] c = new char[100];int len = 0;while((len = fr.read(c)) != -1) {//读取数据fw.write(c, 0, len);//写入数据到内存}fw.flush();fw.close();fr.close();} catch (Exception e) {e.printStackTrace();}}}

注意:
    在写入一个文件时,如果目录下有同名文件将被覆盖。
    在读取文件时,必须保证该文件已存在,否则出异常。

更多推荐

【java学习—十二】文件字符流(3)

本文发布于:2023-11-16 14:21:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1625099.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符   文件   java   十二

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!