当前位置: 首页 > 图灵资讯 > 技术篇> 文件字符流

文件字符流

来源:图灵教育
时间:2023-05-21 09:23:04

1.文件字节流.Filereder和FileWriter介绍618

文件字符流_java

3.Filereader相关方法:618

1)newFileReader(File/String)

2)read:每次读取单个字符,如果返回到文件末尾-1

3)read(char[]):批量读取多个字符到数组,返回读取的字符数,如果返回到文件末尾-1相关API:

1)newString(char[]):将char[]转换为String

2)newString(char[],off,len):将char[]的指定部分转换为String

4.FileWriter常用方法6188

1)newFileWriter(File/String):覆盖模式相当于第一端流动指针

2)newFileWriter(File/String,true):追加模式相当于尾端流动指针

3)write(int):写单个字符

4)write(char[]):写入指定数组

5)write(char[],off,len):写入指定数组的指定部分

6)write(string):写入整个字符串

7)write(string,off,len):写入字符串指定部分的指定部分

相关API:String类:toCharArray:将String转换为char[]

➢注意:

FileWriter使用后,必须关闭(close)或刷新(flush),否则不能写入指定文件!

5.Filereader和FileWriter应用案例6195.1Filereder字符输入流619

使用Filereader从storystory.txt读取内容并显示

com中的代码.stulzl.fileread_.包中FileRead_

package com.stulzl.fileread_;import org.junit.jupiter.api.Test;import javax.annotation.processing.SupportedAnnotationTypes;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;// FileReader 字符输入流  619//使用 FileReader 从 story.txt 读取内容,并显示public class FileRead_ {    public static void main(String[] args) {    }    ///单字符读取文件    @Test    public void readFile01(){        String filePath = "e:\\story.txt";        FileReader fileReader = null;        int data = 0;///也用于存储read()的返回值        try {            ///创建Filereder对象            fileReader = new FileReader(filePath);            //循环读取,使用read读取单个字符            while((data = fileReader.read())!=-1){                System.out.print((char)data);//类型转换,因为data要求字符类型            }        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if(fileReader!=null) {                    fileReader.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }    }    ///用字符数组读取文件    @Test    public void readFile02(){        System.out.println(第二种方式);        String filePath = "e:\\story.txt";        FileReader fileReader = null;        int readLen = 0;//也用于存储readad(buf)的返回值        char[] buf = new char[8];        try {            ///创建Filereder对象            fileReader = new FileReader(filePath);            //循环读取,使用read(buf), 返回的是实际读取的字符数            /如果返回-1, 说明到文件结束            while((readLen = fileReader.read(buf))!=-1){                System.out.print(new String(buf,0,readLen));///类型转换,因为data需要字符类型            }        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if(fileReader!=null) {                    fileReader.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }    }}

5.2FileWrite字符输出流620

使用FileWriter将“风雨后定见彩虹”写入noteter.注意txt文件中的细节

com中的代码.stulzl.filewrite_.包中FileWrite_

package com.stulzl.filewrite_;import java.io.FileWriter;import java.io.IOException;///FileWrite字符输出  620//使用 FileWriter 将 “风雨过后,定见彩虹” 写入到 note.txt 文件中, 注意细节publiclicccic class FileWrite_ {    public static void main(String[] args) {        String filePath = "e:\\note.txt";        FileWriter fileWriter = null;        char[] chars = {'a','b','c'};        try {            fileWriter = new FileWriter(filePath);            //write(int):写单个字符            fileWriter.write('h');            //write(char[]):写入指定数组            fileWriter.write(chars);            //write(char[],off,len):写入指定数组的指定部分            //fileWriter.write(chars,0,2);            //toCharArray()方法可以将字符串转成字符数组            fileWriter.write("中国,你好".toCharArray(),3,2);//你好            //write (string) :写入整个字符串            fileWriter.write(你好,中国”);            fileWriter.write(”风雨过后,定见彩虹”);            //write(string,off,len):写入字符串指定部分的指定部分            fileWriter.write(“你好世界”,2,2);//世界            ///在数据量大的情况下可以使用循环                    } catch (IOException e) {            e.printStackTrace();        } finally {            ///FileWriter使用后,必须要关闭(close)或刷新(flush), 否则不能写入指定文件!            try {                fileWriter.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}