Java IO之字符流

1.         字符流

在程序中一个字符等于两个字节,Java为我们提供了Reader和Writer两个专门操作字符流的类

1)        字符输出流:Writer

Writer是一个字符流,它是一个抽象类,所以要使用它,也必须通过其子类来实例化它后才能使用它。

Writer类的常用方法


方法名称


描述


public abstract void close() throws IOException


关闭输出流


public void write(String str) throws IOException


将字符串输出


public void write(char cbuf) throws IOException


将字符数组输出


public abstract void flush() throws IOException


强制性清空缓存

示例1:HelloWorld

向一个文本文件中通过字符输出流写入数据

[java]
 
view plain
copy
print
?

  1. public static void main(String[] args) throws Exception {
  2. // 声明一个File对象
  3. File file = new File("hellowolrd.txt");
  4. // 声明一个Write对象
  5. Writer writer = null;
  6. // 通过FileWriter类来实例化Writer类的对象并以追加的形式写入
  7. writer = new FileWriter(file, true);
  8. // 声明一个要写入的字符串
  9. String str = "字符串形式写入Helloworld";
  10. // 写入文本文件中
  11. writer.write(str);
  12. // 刷新
  13. writer.flush();
  14. // 关闭字符输出流
  15. writer.close();
  16. }

2)        字符输入流:Reader

Reader本身也是一个抽象类,同样,如果使用它,我们需要通过其子类来实例化它才可以使用它。

Reader类的常用方法


方法名称


描述


public abstract void close() throws IOException


public int read() throws IOException


public int read(char cbuf) throws IOException

通过方法我们看到Reader类只提供了一个读入字符的方法

示例2:还是Helloworld

在上面的基础上把文本中的内容读出来,并且显示在控制台上

[java]
 
view plain
copy
print
?

  1. public static void main(String[] args) throws Exception {
  2. // 声明一个File对象
  3. File file = new File("hellowolrd.txt");
  4. // 声明一个Reader类的对象
  5. Reader reader = null;
  6. // 通过FileReader子类来实例化Reader对象
  7. reader = new FileReader(file);
  8. // 声明一个字符数组
  9. char[] c = new char[1024];
  10. //     // 将内容输出
  11. //     int len = reader.read(c);
  12. //循环方式一个一个读
  13. int len=0;
  14. int temp=0;
  15. while((temp=reader.read())!=-1){
  16. c[len]=(char)temp;
  17. len++;
  18. }
  19. // 关闭输入流
  20. reader.close();
  21. // 把char数组转换成字符串输出
  22. System.out.println(new String(c, 0, len));
  23. }

2.         字符流与字节流的区别

操作字节流操作时本身不会用到缓冲区,是文件本身直接操作,而字节流在操作时就使用到了缓冲区。

如果我们在操作字符流的时候,不关闭流,我们写入的数据是无法保存的。所以在操作字符流的时候一定要记得关闭流

时间: 2024-10-06 21:26:08

Java IO之字符流的相关文章

[学习笔记]Java IO之字符流

概述 字符流是专门用于处理文本文件的流,其中包括了文本编码相关转换工作. 字符流只可以处理文本字符数据. 每个字符流都包括一种编码方式,可以使用系统默认,也可以自行设定. 编码 1. 编码表 生活中语言文字和计算机中对应的数据表 2. 常见编码表 ASCII:包括字母和常见符号,1字节编码,首位为0. ISO8859-1:包括拉丁字母,1字节编码,首位为1. GB2312:简体中文码表,包括6~7千汉子及符号,2字节编码,2个字节首位均为1. GBK:中文码表,包括GB2312全部编码,约2万个

Java IO(四--字符流基本使用

在上一节,介绍了字节流的基本使用,本节介绍一下字符流的使用 Reader: public abstract class Reader implements Readable, Closeable { protected Object lock; private static final int maxSkipBufferSize = 8192; private char[] skipBuffer = null; protected Reader() { this.lock = this; } p

JAVA之IO技术-字符流对象Writer的子类对象FileWriter的使用

  package ioTest.io1; import java.io.File; import java.io.FileWriter; /* * IO技术,按照操作数据的方式分类如下: * 字节流和字符流 * 字节流的两个基类: * InputStream,OutputStream * 字节流的两个基类: * Reader,Writer * 思考一个问题:为什么有了字节流还要出现字符流? * * 先学习字符流的特点. * * 既然IO是操作数据的,那么数据最常见的体现形式 文件 * 需求:

java 字节流和字符流转换类InputStreamReader,OutPutStreamReader

import java.io.*; public class BufferDemo { public static void main(String[] args) throws IOException { BufferedReader buf=null; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("Please enter a number:"); String str=buf

Java IO之处理流(缓冲流、转换流)

一.处理流: 增强功能,提供性能,在节点流之上. 二.节点流与处理流的关系 节点流(字节流.字符流)处于IO操作的第一线,所有操作必须通过它们进行: 处理流可以对其他流进行处理(提高效率或操作灵活性). 三.缓冲流 1.字节缓冲流 BufferedInputStream BufferedOutputStream package IOBuffer; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im

Java IO结构各种流详解

花了两天时间研究了一下Java IO的流,对于各种流,加深了一下理解 首先看我做的思维导图 文件流 public class FileIO { public static void main(String[] args) throws Exception { File file1 = new File(System.getProperty("user.dir") + "/c.txt"); // 找到第一个文件的File // 找到目标文件路径 File file2

java 字节流和字符流的区别 转载

转载自:http://blog.csdn.net/cynhafa/article/details/6882061 java 字节流和字符流的区别 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示. 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流.范例:使用字节流不关闭执行 Java

芯学苑:浅析Java字节流和字符流

1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流. 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据.Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流.Inpu

Java学习笔记之 IO包 字符流

字符流:Writer/Reader(字符流) 通过子类FileWriter和FileReader实现父类实例化 package iotest; import java.io.File; import java.io.Writer; import java.io.Reader; import java.io.FileWriter; import java.io.FileReader; public class OutputStreamDemo2 { public static void main(