zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    完整的网站开发技术学习建议
    在微信小程序中绘制图表(part2)
    原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
    第八届蓝桥杯第二题:等差素数列
    第七届蓝桥杯第四题:快速排序
    51Nod:1086背包问题 V2
    POJ:2386 Lake Counting(dfs)
    51Nod:1268 和为K的组合
    迭代器
    51Nod:1134 最长递增子序列
  • 原文地址:https://www.cnblogs.com/jerryho/p/4760872.html
Copyright © 2011-2022 走看看