首页 > 其他分享 >文件字符流

文件字符流

时间:2023-05-20 13:08:20浏览次数:37  
标签:字符 char String 文件 FileReader write FileWriter

1. 文件字节流接上

2. FileReader 和 FileWriter 介绍  618

文件字符流_FileWriter

3. FileReader 相关方法:618

1) new FileReader(File/String)

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

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

1) new String(char[]):将char[]转换成String

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

4. FileWriter 常用方法  618

1) new FileWriter(File/String):覆盖模式,相当于流的指针在首端

2) new FileWriter(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 应用案例  619

5.1 FileReader 字符输入流  619

使用 FileReader 从 story.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 {
            //创建FileReader对象
            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;//也是用来存放read(buf)的返回值
        char[] buf = new char[8];
        try {
            //创建FileReader对象
            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.2 FileWrite字符输出流  620

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

代码在com.stulzl.filewrite_.包中

FileWrite_

package com.stulzl.filewrite_;

import java.io.FileWriter;
import java.io.IOException;

//FileWrite字符输出流  620
//使用 FileWriter 将 “风雨之后,定见彩虹” 写入到 note.txt 文件中, 注意细节
public 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();
            }
        }
    }

}

标签:字符,char,String,文件,FileReader,write,FileWriter
From: https://blog.51cto.com/u_15784725/6317324

相关文章

  • linux默认目录和常用文件、目录
    1、介绍各种linux发行版本之间遵循基本一致的文件命名和使用规则,目录本身不具备特殊性,而是系统默认运行、安装、配置等会将文件保存在各个约定的目录下,建议用户也遵循这一约定,方便管理。2、默认目录(1)binbinaries二进制文件的缩写,存放的是普通命令。比如cat,cd(2)sbinsuperbin......
  • linux文件和目录命令
    1、ls单词list的缩写,列举当前目录下的文件。ls列举文件ls-a列举所有文件,包括.和..ls-l列举ls涉及文件的详细信息,可以和-a同时使用ls-S根据文件大小排序ls-t根据更新时间排序lsa*列出以a开头的文件,如果是目录,会列出目录以及目录的一级子文件lsa*w*可以同时列出......
  • .net core 静态文件跨域问题
    app.UseStaticFiles(newStaticFileOptions{OnPrepareResponse=(c)=>{c.Context.Response.Headers.Add("Access-Control-Allow-Origin","*");......
  • 用python读取excel文件
    需要用到的包--pandasimportpandasaspd简单读取excel文件,要用到read_excel()df=pd.read_excel("D:\无名字的文件夹\实验材料.xlsx")dfOut[11]:姓名年龄喜好0张三15抖音1李四16快手2王五17抖音3小明18小红书4小花19小红书使用r......
  • Linux文件管理命令
    vim跳转到80行80gg跳转到第一行gg跳转到最后一行G删除一行dd撤销上一步的操作u大文件切割#将test.txt文件每10M大小切割成一个小文件split-b10Mtest.txt#把小文件合并成大文件catx*>test.txtfind-name区分大小写-iname忽略大小写-regex区分大小写的正则表达式......
  • Q&A:IDEA环境下pom文件依赖引入成功,但提示版本号不存在
    Question: IDEA环境下pom文件依赖引入成功,但提示版本号不存在。Answer: 网络资料显示问题原因:可能是项目依赖中有些jar没有下载完整IDEA2020版本在maven构建时存在的BUG方案一: 在当前项目命令行mvnidea:idea,检查未下载完的jar并下载; 菜单选择【file】->【inva......
  • Java文件与IO流
    首先我们要清楚什么是流,正如其名,很形象,流就是像水一样的东西,具有方向性,在java中,流大概就是类接下来,我们要对输入输出流有一个基本认识,什么是输入输出流呢?输入输出明显需要一个参照,而这个参照就是主存。清楚了上面的概念,我们接着看下去吧。文件文件的创建文件创建共有三种......
  • 使用ln命令在Linux系统中创建连接文件
    在Linux中ln命令用来为文件创建连接,连接类型分为硬连接(HardLink)和符号连接(SymbolicLink)两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。关于软硬连接解释硬连接硬连接是指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是......
  • nginx 默认配置文件
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker_connections1024;}http{includemime.types;defau......
  • 《mysql高性能》系列4:字符集和校对
    对于字符串类型,有一个字符集的概念在里面。字符集是指,一种从二进制编码到某类字符符号的映射。例如,中文符号,在计算机底层用二进制存储,那么,就需要有一个映射表,来表示哪个中文符号用哪个二进制编码来表示。校对,是指一组用于某个字符集的排序规则。1mysql如何使用字符集只有基于字......