IO流

IO流
分为字节流和字符流
字节流抽象基类: InputStraem(读) ,OutputStream(写)

字符流基类: Reader Writer

FileWriter:  后缀名是父类名。 前缀名是该流对象的功能。

专门用于操作文件的Writer子类对象

使用IO流都应该对其进行异常处理,IO异常是最常见的.要么抛出(throws)要么try-catch处理.两种方式.

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异常代码演练处理:

/*
IO流异常处理
*/
import java.io.*;

class FileWriterExceptionDemo
{
    public static void main(String args[])
    {
        FileWriter fw = null;
        try
        {
            fw = new FileWriter("Demo.txt");
            fw.write("abcde");
        } 
        catch(IOException e) 
        {
            System.out.println(e.toString()); 
        }
        finally
        {    
            try 
            {
                fw.close();
            } 
            catch (IOException e) 
            {
                 System.out.println(e.toString());
            }
             
        }
        
        
    
    
    }
} 

 缓冲技术:BufferedReader 与BufferedWriter.

字符输入/输出流中读取或者写入,缓冲各个字符,从而实现字符、数组和行的高效读取和写入。

可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

加入缓冲可以提高代码的运行效率,实现高效的读取写入数据.一般应用到字符流时,都应该应用缓冲区技术

BufferedWriter代码演示:

import java.io.*;

class BufferedWriterDemo
{
    public static void main(String args[])
    {
        FileWriter fw = null;
        BufferedWriter bw = null;
        try 
        {
            fw = new FileWriter("buffer.txt");
            //fw.write("abcd");
            bw = new BufferedWriter(fw);
            for(int i = 1; i<5; i++)
            {
                bw.write("abc"+i);
                //bw.write("
");
                bw.newLine(); //换行 
                
                bw.flush();
            }
        } 
        catch(IOException e) 
        {
             System.out.println(e.toString());
        }
        finally
        {
            try 
            {
                bw.close();
            } 
            catch(IOException e) 
            {
                 System.out.println(e.toString());
            }
            
        }
        
        
        
    }
}

BufferedReader代码演示:

import java.io.*;

class BufferedReadDemo
{
    public static void main(String args[]) throws IOException
    {
        //创建一个读取流对象,和文件相关联
        FileReader fd = new FileReader("buffer.txt");
        //加入缓冲技术,将字符流对象作为参数传递给缓冲对象的构造函数
        BufferedReader bufr = new BufferedReader(fd);
        
        //readLine()方法读取到最后返回空,因此定义一个字符串为null,以便于循环控制输出各行.
        String s = null;
        while((s = bufr.readLine())!= null)
        {
            System.out.println(s);
        }
        
        //String s1 = bufr.readLine();
        
        //System.out.println("s1:"+s1 );
        
        bufr.close();
    }
}
原文地址:https://www.cnblogs.com/jerryho/p/4760872.html