68. 缓存输入输出字符流

输入字符流:
--------------| Reader 输入字符流的基类。 抽象类
----------| FileReader 读取文件的输入字符流
----------| BufferedReader 缓存输入字符流(提高效率和扩展了FileReader的功能)。内部其实也维护了一个字符数组

扩展功能:
readLine()     一次读取文本的一行数据,如果读取到了文件末尾返回null

输出字符流:
--------------| Write  输出字符流的基类。 抽象类
----------| FileWrite  向文件输入数据
----------| BufferedWrite 缓存输出字符流。 内部维护了一个字符数组,当我们使用write的时候是把数据存储到了字符数组中,并不是写入了文件中
当我们使用flush,close方法或者数组满了的时候,才会写入文件中

扩展功能:
newLine()    添加一个回车符,实际上就是输出(/r/n)

注意:缓存流都不具备读写文件的能力

public class Demo3 {
    public static void main(String[] args)throws IOException  {
        File file = new File("D:\\新建文件夹\\1.txt");
        readText(file);//原数据
        writeText(file);//添加数据
        System.out.println("-------------------------------");
        readText(file);//添加后数据
    }

    //一行一行读取文本
    public static void readText(File file) throws IOException {
        FileReader fileReader = new FileReader(file);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        String line = null;
        while((line = bufferedReader.readLine())!=null) {
            System.out.println(line);
        }
        bufferedReader.close();
    }

    //一行一行把数据存入文本中
    public static void writeText(File file) throws IOException {
        FileWriter fileWriter = new FileWriter(file,true);
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
        bufferedWriter.newLine();//换行
        bufferedWriter.write("789   789");
        bufferedWriter.close();
    }
}

原文地址:https://www.cnblogs.com/zjdbk/p/9073742.html

时间: 2024-10-31 11:31:46

68. 缓存输入输出字符流的相关文章

java的IO操作:字节流与字符流操作

流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输入主要使用:write类. 2)输出主要使用:reader类. 内容操作就四个类. 操作流程: 使用File类操作一定有路径问题,注意分隔符: 实际上四个操作类都是抽象类(区别接口,抽象类的成员都是抽象,并且只能单继承,接口可以有全局变量,但是接口可以多继承) IO操作属于资源操作,对于资源操作,操

java 核心编程——IO流之字符流(三)

1.字符流 1.1 所有文件的存储都是字节的存储,我们日常在磁盘上保存的其实并不是文件的字符,而是先把字符转换成字节,再把这些字节储存到磁盘.在读取文件时,也是一个字节一个字节的读取,然后生成字节的序列. 1.2 字节流可以处理任何对象,但是字符流呢,.只用来处理字符或者字符串.可以这样说,字节流呢,提供了最基本IO功能,可以处理任何IO操作,但是有一点,不可以直接处理Unicode字符,为什么呢,因为Unicode字符是一个单元为2个字节的字符,而字节流的处理单元为1个字节,字符流是由Java

Java 网络编程 字符流的发送与接收 自定义数据边界

在网络编程中,客户端调用了flush方法,就会将缓存在字符流中的文本发送给服务器,服务器该怎样判断客户端发送的文本已经结束了呢? 我们先看一个例子: 客户端: import java.io.IOException; import java.io.PrintWriter; import java.net.InetSocketAddress; import java.net.Socket; import java.util.Scanner; /** * Created by 290248126 on

整理 JAVA中的IO流 (字符流和字节流两个大类)

java中的io流分为两类,字符和字节: OutputStream和InputStream字节流的父类,抽象.OutputStream有两个提供了实现的接口closable和flushable. Writer和Reader字符流的父类,抽象.实际上在流的操作中,底层与文件进行读写的都是字节流,因为即使是字符流的对象,其最终实现读写的也是用的字节流. 操作文件的字节子类FileOutputStream和FileInputStream.记住,这里面写出和读入的都是字节. class useByteS

字符流,字节流,缓存流详解

package com.bjsxt.init;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.Input

java的文件流:字节流(FileInputStream、FileOutputStream)和字符流(FileReader、FileWriter)。

java的输入输出建立在4个抽象类的基础上:InputStream.OutputStream.Reader.Writer.InputSream和OutputStream被设计成字节流类,而Reader和Writer被设计成字符流类.一般来说,处理字符或者字符串时应该使用字符流类,处理字节或者二进制对象时应该使用字节流类. 一般在操作文件流时,不管是字节流还是字符流,都可以按照以下的方式进行. 1.使用File类找到一个文件 2.通过File类实例化字节流或字符流 3.进行字节(字符)的读写操作

压缩字符流和字节流和全站压缩过滤器

1 public static void main(String[] args) throws Exception { 2 ByteArrayOutputStream bos = new ByteArrayOutputStream(); //字符流 3 OutputStreamWriter osw = new OutputStreamWriter(bos); 4 PrintWriter pw = new PrintWriter(osw); 5 pw.write("helloworld"

疯狂Java学习笔记(55)----------字节流与字符流

字节流与字符流 在java.io包中操作文件内容的主要有两大类:字节流.字符流,两类都分为输入和输出操作.在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成.(这四个都是抽象类) 处理流的用法: 按照流是否直接与特定的地方(如磁盘.内存.设备等)相连,分为节点流和处理流两类.  节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader 处理流:是对一个已存在的流的

JavaIO-字节流与字符流详解

在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,而当程序需要将一些数据保存起来时,就要使用输出流,可以通过图12-5表示出输入及输出的关系.   (点击查看大图)图12-5  输入.输出的关系 在java.io包中流的操作主要有字节流.字符流两大类,两类都有输入和输出操作.在字节流中输出数据主要使用OutputStream类完成,输入使用的是InputStream类.在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类完成. 在Java中