设为首页 加入收藏

TOP

IO流 p4 FileReader 和 FileWriter(一)
2023-07-23 13:43:52 】 浏览:26
Tags:FileReader FileWriter

FileReader 和 FileWriter

一、 FileReader 和 File Writer 介绍

FileReader 和 FileWriter 是字符流,即按照字符来操作 io

二、 FileReader 相关方法

  • 构造方法摘要
Constructor and Description
FileReader(File file)创建一个新的 FileReader ,给出 File读取。
FileReader(String fileName)创建一个新的 FileReader ,给定要读取的文件的名称。
FileReader(FileDescriptor fd)创建一个新的 FileReader ,给定 FileDescriptor读取。
  • 相关方法摘要
Modifier and Type Method and Description
int read()每次读取单个字符,返回该字符,如过达到文件末尾返回-1
int read(char[])批量读取多个字符到数组中,返回读取到的字符数,如过达到文件末尾返回-1
  • 相关API:

    1. new String(char[]):将char[]转换成String
    2. new String(char[], off, len):将char[]的指定部分转换成String
  • 代码演示:

    import org.junit.jupiter.api.Test;
    
    import java.io.FileReader;
    import java.io.IOException;
    
    /**
     * @author
     * @version 1.0
     */
    public class FileReader_ {
        public static void main(String[] args) {
    
        }
        /**
         * 单个字符读取
         */
        @Test
        public void fileReader01(){
            String filePath = "e:\\story.txt";
            //创建FileReader对象
            FileReader fileReader = null;
            int data = 0;
            try {
                fileReader = new FileReader(filePath);
                //循环读取
                while((data = fileReader.read()) != -1){
                    System.out.print((char)data);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    if(fileReader != null)
                        fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * 字符数组读取
         */
        @Test
        public void fileReader02(){
            String filePath = "e:\\story.txt";
    
            FileReader fileReader = null;
            int readLen = 0;
            char[] buf = new char[8];
            try {
                //创建FileReader对象
                fileReader = new FileReader(filePath);
                //循环读取
                while((readLen = fileReader.read(buf)) != -1){
                    System.out.print((new String(buf, 0, readLen)));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    if(fileReader != null)
                        fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    

三、 FileWriter 相关方法

  • 构造方法摘要
Constructor and Description
FileWriter(File file)给一个File对象构造一个FileWriter对象。
FileWriter(File file, boolean append)给一个File对象构造一个FileWriter对象。
FileWriter(String fileName)构造一个给定文件名的FileWriter对象。
FileWriter(String fileName, boolean append)构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
FileWriter(FileDescriptor fd)构造与文件描述符关联的FileWriter对象。
  • 相关方法摘要
Modifier and Type Method and Description
void writer()写入单个字符
void writer(char[])写入指定数组
void writer(char[], int off, int len)写入指定数组的指定部分
void writer(String str)写入整个字符串
void writer(String str, int off, int len))写入字符串的指定部分
  • 相关API:String类:toCharArray():将String转换成char[]

  • 注意:FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定的文件。在Java中使用带有缓冲的流时进行文件写入时,数据首先被缓存在内存中。当缓冲区满或者close()或flush()方法被调用时,缓冲区中的数据才会被真正地写入到文件中。如果没有关闭流或者flush缓冲区,缓冲区中的数据就会一直保留在内存中,而不会被写入到文件中。如果程序突然崩溃或者关闭,这些缓冲的数据将会丢失,这可能会导致数据的不完整或者文件损坏。

  • 代码演示:

    import java.io.FileWriter;
    import java.io.IOException;
    
    /**
     * @author
     * @version 1.0
     */
    public class FileWriter_ {
        public static void main(String[] args) {
            String filePath = "e:\\note.txt";
            FileWriter fileWriter = null;
            char[] chars = {'a','b','c'};
            try {
                //创建FileWriter对象
                fileWriter = new FileWriter(filePath);//默认是覆盖写入
                //这种构造方法在使用FileWriter时,如果文件不存在,则会自动创建一个新的文件,
                // 如果文件已经存在,则会直接打开该文件并清空原有内容,从文件的开头开始写入新的内容。
                //1. writer(int):写入单个字符
                fileWriter.write('H');
                //2. writer(char[]):写入指定数组
                fileWriter.write(chars);
                //3. write
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇day08-SpringCloud Gateway-服务.. 下一篇【单元测试】Spring Data JPA + H..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目