IO流之字节流和字符流详解.docxVIP

  • 1
  • 0
  • 约1.64万字
  • 约 18页
  • 2017-06-11 发布于北京
  • 举报
IO流之字节流和字符流详解 IO(Input output)流,分为两种:字节流和字符流 字节流的两个基类: InputStream(读)OutStream(写) 字符流的两个基类: Reader(读) Writer(写) 字符流 写(FileWriter)和读(FileReader) 写(FileWriter) 我们知道既然IO流是用于操作数据的,那么数据的最常见的体现形式是:文件 我们使用一个操作文件的Writer子类是FileWriter。我们要查Writer API时注意:后缀名是父类名,前缀名是是该流对象的功能。 我们来首先来看看Writer基类的几种常用方法: a) public void write(String str) throws IOException: 写入字符串 b) public abstract void flush()throws IOException:刷新该流的缓冲 c) public abstract void close()throws IOException:关闭该流,但先刷新 对于如何创建一个字符Writer流,我们来详细看看如下代码: import java.io.*; class FileWriterDemo { public static void main(String[] args) throws IOException { //创建一个FileWriter对象, //该对象一旦被创建就必须明确要被操作的文件 //而且该文件会被创建到指定目录下 //如果该目录下已有同名文件,将被覆盖 //其实改不就是在明确数据要存放的目的地 FileWriter fw=new FileWriter(demo.txt); //调用write方法,将字符串写入到流中 fw.write(abcde); //刷新流对象中的缓冲中数据 //将数据刷到目的地中,即将数据保存到目的地 //fw.flush(); //关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据 //将数据刷到目的地中 //和flush区别:flush刷新后,流可以继续使用,close刷新后,流会关闭 fw.close(); } } IO异常(IOException)的处理方式:我们对与Io出现的异常不能抛,我们要自己解决,我们如何去处理一个IO异常呢?我们用代码演示一遍: import java.io.*; class IOExceptionDemo { public static void main(String[] args) { //我们首先创建类型的变量并作用于整个域 FileWriter fw=null; try{ fw=new FileWriter(k://demo.txt); fw.write(xixi); }catch(IOException e){ //此处是对异常的处理 System.out.println(catch:+e); }finally{ try{ //我们要首先判断对象是否为空, //此处对象异常不能让用户看到 if(fw!=null) //close方法必须要单独try,且放在Finally语句中 fw.close(); }catch(IOException e){ } } } } 我们如何对数据进行续写?我们就要使用到FileWriter的另一个构造方法。 FileWriter(String fileName, boolean append):根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 创建的时候即new FileWriter(“数据目的地”,“true”); 读(FileReader) Reader有哪些常用的方法: a) public int read()throws IOException:读取单个字符 b) public int read(char[] cbuf) throws IOException:将字符读入数组。 c) public abstract void close()throws IOException:关闭该流并释放与之关联的所有资源,此处没有刷新。 IO中Reader有两种方式读取: 第一种:使用第一种read方法读取单个字符 import java.io.*; class ReaderDemo { public static void ma

文档评论(0)

1亿VIP精品文档

相关文档