experiment @ lzptc ,2nd_term_Ex7

 

实验十四  字符流设计

实验目的:

    1. 进一步了解并熟悉JavaI/O 流的概念;

    2. 掌握典型字符流类的操作方法。

实验题目:

    Reader Writer 是面向字符输入的,它们以字符(16) 为单位读写,效率较字节流高.在可能的情况下,尽量用该类读、写。

    ①读入与写出文本文件: 调试程序IODemo1.java

    read(): 读入一个字符;write(int temp): 写出一个字符

    问题:很多时候需要逐行读取文本内容,用下面的方法解决。

    ②逐行读入与写出文本文件 (readLine(): 一行一行读):调试程序IODemo2.java 和调试程序IODemo3.java

BufferReader BufferedWriter 或者BufferReaderPrintWriter

另做题目:RandomAccessFile 类的使用

    调试程序:

实验要求:

  1. 分析程序功能,设置好运行环境;

  2. 调试程序,写出运行结果。


IODemo1.java

import java.io.*;

public class IODemo1

  { public static void main(String[] args)

    {int temp;

     try

      { FileReader in=new FileReader("demo.txt");

         FileWriter out=new FileWriter("newdemo.txt");

    

       while(in.ready())   //ready() 方法 判断文件读入流类是否准备好

         { temp=in.read();  // 从源文件读入一个字符 2 个字节 ), 返回该字符的 int 数据

           out.write(temp); //写出一个字符temp(实际上,只是写到输出缓冲区里)

         }

       in.close();

       out.close();        //保存newdemo.txt文件的内容(这时才真正进行了磁盘文件的写操作)

                           //若把这一句屏蔽,则newdemo.txt文件大小为0字节

       System.out.println("成功创建newdemo.txt文件,请查看!");

      }

     catch(Exception e){};

    }

  }

IODemo2.java

import java.io.*;

public class IODemo2

  {public static void main(String[] args)

    {String s=new String();

     try

      {// 构造方法 BufferReader(Reader in)

       BufferedReader in=new BufferedReader(new FileReader("source.txt"));

 

       // 构造方法 BufferWriter(Write out)

       BufferedWriter out=new BufferedWriter(new FileWriter("destnation.txt"));

            

       //给目标文件加一行信息:

       out.write("the following is from source");

       out.newLine();       // 写一个换行符

       while((s=in.readLine())!=null)  // 读取一行文本

        { out.write(s);

          out.newLine();

        }

       in.close();

       out.close();     //关闭输出流,将缓冲中的数据一次性写到目的文件中

       System.out.println("成功创建destnation.txt文件,请查看!");

      }

    catch(Exception e){};

   }

  }

 

IODemo3.java

import java.io.*;

public class IODemo7_2

  {public static void main(String[] args)

    {String s=new String();

     try

      {// 构造方法 BufferReader(Reader in)

       BufferedReader in=new BufferedReader(new FileReader("source.txt"));

 

       // 构造方法 PrintWriter(Write out)

       PrintWriter out=new PrintWriter(new FileWriter("destnation.txt"));

            

       //给目标文件加一行信息:

       out.println("the following is from source");

        while((s=in.readLine())!=null)  // 读取一行文本

        { out.println(s);

        }

       in.close();

       out.close();     // 关闭输出流 将缓冲中的数据一次性写到目的文件中

       System.out.println(" 成功创建 destnation.txt 文件 请查看 ");

      }

    catch(Exception e){};

   }

  }

 

Random_RW.java

import java.io.*;

public class Random_RW

{ public static void main(String[] args)

  { String string;

    String array[]=new String[256];

    long len=0;

    int i=0,counter=0;

    try

     {  //以既读又写的方式建立一个数据流,源为names.txt文件

        RandomAccessFile access=new RandomAccessFile("names.txt","rw");

        len=access.length();          // 统计文件长度 按字符个数计算 ), 回车换行统计为 2 个字符

        access.seek(len);             // 设置指针到下一个写操作的位置 从位置 0 算起

        access.writeBytes("fox/n");   // 按字节序列将一个字符串写到这个文件中

 

        access.writeBytes("bee/n"); 

        access.seek(0);               // 将指针重新定位到文件的起始位置

        while ( (string = access.readLine()) != null)   // 行读 结果记录到 string

         { counter++;                 // 记录行数

           array[i++]=string;         // 读出的数据 字符串 存储到数组里      

         }

        access.close(); 

      }

     catch (IOException ex) {}

     for(i=0;i<counter;i++)           //显示数组信息

       System.out.println(array[i]);

   }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值