Chinaunix首页 | 论坛 | 博客
  • 博客访问: 897943
  • 博文数量: 215
  • 博客积分: 10062
  • 博客等级: 上将
  • 技术积分: 2235
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-01 13:21
文章分类

全部博文(215)

文章存档

2012年(1)

2011年(24)

2009年(16)

2008年(91)

2007年(83)

我的朋友

分类: Java

2009-02-04 17:54:36

package test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.StringReader;
public class TestIO {
    public static void main(String[] args) throws IOException {
        // 1.以行为单位从一个文件读取数据
        BufferedReader in = new BufferedReader(new FileReader(
                "H:\\java\\MyProject\\src\\test\\TestIO.java"));
        String s, s2 = new String();
        while ((s = in.readLine()) != null)
            s2 += s + "\n";
        in.close();
        // 1b. 接收键盘的输入
        BufferedReader stdin = new BufferedReader(new InputStreamReader(
                System.in));
        System.out.println("Enter a line:");
        System.out.println(stdin.readLine());
        // 2. 从一个String对象中读取数据
        StringReader in2 = new StringReader(s2);
        int c;
        while ((c = in2.read()) != -1)
            System.out.print((char) c);
        in2.close();
        // 3. 从内存取出格式化输入
        try {
            DataInputStream in3 = new DataInputStream(new ByteArrayInputStream(
                    s2.getBytes()));
            while (true)
                System.out.print((char) in3.readByte());
        } catch (EOFException e) {
            System.out.println("End of stream");
        }
        // 4. 输出到文件
        try {
            BufferedReader in4 = new BufferedReader(new StringReader(s2));
            PrintWriter out1 = new PrintWriter(new BufferedWriter(
                    new FileWriter("F:\\nepalon\\TestIO.out")));
            int lineCount = 1;
            while ((s = in4.readLine()) != null)
                out1.println(lineCount++ + ":" + s);
            out1.close();
            in4.close();
        } catch (EOFException ex) {
            System.out.println("End of stream");
        }
        // 5. 数据的存储和恢复
        try {
            DataOutputStream out2 = new DataOutputStream(
                    new BufferedOutputStream(new FileOutputStream(
                            "F:\\nepalon\\Data.txt")));
            out2.writeDouble(3.1415926D);
            out2.writeChars("\nThas was pi:writeChars\n");
            out2.writeBytes("\nThas was pi:writeByte\n");
            out2.close();
            DataInputStream in5 = new DataInputStream(new BufferedInputStream(
                    new FileInputStream("F:\\nepalon\\Data.txt")));
            BufferedReader in5br = new BufferedReader(
                    new InputStreamReader(in5));
            System.out.println(in5.readDouble());
            System.out.println(in5br.readLine());
            System.out.println(in5br.readLine());
        }
        catch (EOFException e) {
            System.out.println("End of stream");
        }
        // 6. 通过RandomAccessFile操作文件
        RandomAccessFile rf = new RandomAccessFile("F:\\nepalon\\rtest.dat",
                "rw");
        for (int i = 0; i < 10; i++)
            rf.writeDouble(i * 1.414);
        rf.close();
        rf = new RandomAccessFile("F:\\nepalon\\rtest.dat", "r");
        for (int i = 0; i < 10; i++)
            System.out.println("Value " + i + ":" + rf.readDouble());
        rf.close();
        rf = new RandomAccessFile("F:\\nepalon\\rtest.dat", "rw");
        rf.seek(5 * 8);
        rf.writeDouble(47.0001);
        rf.close();
        rf = new RandomAccessFile("F:\\nepalon\\rtest.dat", "r");
        for (int i = 0; i < 10; i++)
            System.out.println("Value " + i + ":" + rf.readDouble());
        rf.close();
    }
}
阅读(870) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~