JavaIO(04)字符流--Writer and Reader

字符流:

常识:在java中一个字符等于两个字节;

操作字符流的两个类:Writer,Reader

API文档介绍(Writer):

public abstract class Writer extends Object implements Appendable, Closeable, Flushable

发现此类依然是抽象类,如果使用子类还是需要使用该子类,FileWriter;

Writer类的常用方法:

关闭该流,但要先刷新它;

public abstract void close() throws IOException

刷新该流缓冲;

public abstract void flush() throws IOException

写入字符数组

public void write(char[] cbuf) throws IOException

写入字符数组的一部分

public abstract void write(char[] cbuf,int off,int len)throws IOException

写入字符串

public void write(String str) throws IOException

写入字符串的一部分

public void write(String str,int off,int len)throws IOException

FileWriter常用构造方法:

根据给定的 File 对象构造一个 FileWriter 对象

public FileWriter(File file)throws IOException

根据给定的文件名构造一个 FileWriter 对象

public FileWriter(String fileName)throws IOException

实例01:

package cn.itcast04;

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

public class FileWriterDemo01 {
     public static void main(String[] args) throws IOException {

           //创建IO对象
          FileWriter fw = new FileWriter("d.txt" );

          String s = "I love JAVA";
           //写入字符串
          fw.write( "Hello World");

           //写入字符串的一部分
          fw.write(s, 1,5);

           //写入字符数组
           char[] chars = new char[]{ ‘a‘, ‘c‘, ‘b‘, ‘e‘};
          fw.write(chars);

           //写入字符数组的一部分
          fw.write(chars,0,3);

          fw.close();
     }
}

  

字符输入流(Reader)

API文档介绍(Reader):

public abstract class Reader extends Object implements Readable, Closeable

FileReader类常用方法:

构造方法:

根据给定的 File 对象构造一个 FileWriter 对象

public FileReader(File file)throws IOException

根据给定的文件名构造一个 FileWriter 对象

public FileReader(String fileName)throws IOException

常用方法:

读取单个字符:

public int read()throws IOException

将字符读入数组

public int read(char[] cbuf)throws IOException

读取数组中的一部分

public abstract int read(char[] cbuf,int off,int len)throws IOException

实例02:
package cn.itcast04;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderDemo01 {
     public static void main(String[] args) throws IOException {
          File file= new File("d.txt" );
          FileReader fr = new FileReader(file);

           //读取单个字符
           int c;
           while((c=fr.read())!=-1)
          {
              System. out.println((char)c);
          }
          fr.close();
          System. out.println("================================" );
          File file2= new File("d.txt" );
          FileReader fr2 = new FileReader(file2);
           //读入一个数组
           char[] chars = new char[( int)file2.length()];
           int len;
           while((len=fr2.read(chars))!=-1)
          {
              String s = new String(chars,0,len);
              System. out.println(s);
          }
          fr2.close();

     }
}

  

时间: 2024-10-12 13:23:22

JavaIO(04)字符流--Writer and Reader的相关文章

java 字符流writer、reader基本操作及理解

字符和字节有什么区别,额--这个我也不知道. 1.基本操作实例 import java.io.*; public class CharDemo { public static void main(String[] args) { File f=new File("F:\\workspace\\Javaprj\\test.txt"); Writer out=null; Reader in=null; try { out=new FileWriter(f); String str=&quo

Java IO操作——字节流(OutputStream、InputStream)和字符流(Writer、Reader)

学习目标 掌握流的概念 掌握字节流与字符流的作用 掌握文件的标准操作步骤 掌握字节与字符操作的区别 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序中需要数据的时候就用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输出都是以流的形式保存的,流中保存的实际上全部是字节文件. 字节流与字符流 在java.io包中操作文件内容的主要有两大类:字节流和字符流,两类都分为输入和输出操作.在字节流中输出数据主要是使用OutputStream完成,输入

同步阻塞式I/O(二)——基于字符的Writer、Reader

不管是磁盘还是网络传输,最小的存储单元都是字节,而不是字符,所以 I/O 操作的都是字节而不是字符,但是为啥有操作字符的 I/O 接口呢?这是因为我们的程序中通常操作的数据都是以字符形式,有时我们必须把来自于"字节"层次结构中的类和"字符"层次结构中的类结合起来使用,为了实现这个目的,要用到"适配器"类:InputStreamReader可以把InputStream转化为Reader,而OutputStreamWriter可以把OutputStr

javaIO流--Writer,Reader

Writer /** *<li> Writer中定义的一个重要的方法: * public void writer(String str)throws IOException; */ package com.java.demo; import java.io.File; import java.io.FileWriter; import java.io.Writer; public class TestDemo { public static void main(String args[]) t

IO Writer和Reader

Writer 写入字符流的抽象类.子类必须实现的方法仅有 write(char[], int, int).flush() 和 close().但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能. 字段 protected  Object lock 用于同步针对此流的操作的对象. 构造函数 protected Writer() 创建一个新的字符流 writer,其关键部分将同步 writer 自身. protected Writer(Object lock) 创建一个新的字符流

IO流(三):字符流及其缓冲流

一.字符流概述 (一).本质 1.字节流操作中文数据不是特别的方便,所以就出现了转换流. 转换流的作用就是把字节流转换字符流来使用. 2.转换流其实是一个字符流. 字符流 = 字节流 + 编码表 (二)编码表 1.编码表简介: ASCII ISO-8859-1 GB2312 GBK GB18030 UTF-8 (三)String中的编码 1.内容: 1)编码 String --> byte[] byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码

07JavaIO详解_字符流

字节流掌握的好的话,字符流就很简单了.套路是一样的,只是字符流是处理String的. 字符流介绍如下: 字符流的顶层Reader对应字节流中的InputStream,Writer对应于OutputStream. 介绍一下io系统中Reader的类层次: writer类层次: 我们看一下字符流里面很重要的两个类: 这两个名字取得有意思,就是各自将字节流和字符流的顶层类拼接在了一起. 这两个都是具体的类. 介绍一下InputStreamReader和OutputStreamWriter类的构造函数:

Java IO字符流与字节流

一.基本概念 流:从一端流向另一端,从源头到目的地. 始终与程序为中心,都是程序与文件|数组|网络连接|数据库进行操作. 二.IO流分类 1.流向: 输入流和输出流 2.数据: 字节流:二进制,可以处理文本文件,视频,音频等 . 字符流:文本文件,只能处理纯文本,全款为可见字符(.txt..html). 3.功能: 节点:包裹源头 处理:增强功能,提高性能. 三.字节流与字符流 1.字节流 输入流:InputStream int read(byte[] b) int read(byte[] b,

字节流与字符流复习

/* 字节流 输入字节流: -----------| InputStream 所有输入字节流的基类 抽象类 -----------------| FileInputStream 读取文件数据的输入字节流 -----------------| BufferedInputStream 缓冲输入字符流 该类出现的目的是为了提高读取文件 数据的效率. 这个类其实只不过是在内部维护了一个8kb的字节数组而已. 输出字节流: -----------| OutputStream 所有输出字节流的基类. 抽象类