java之io类,输入输出流学习


io流,流是一个抽象的概念,当java程序需要从数据源读数据时,会开启一个到数据源的流从文件,内存,或者网络中把数据输出到控制台。

更方便的处理数据的输入输出。

流分为字节流和字符流。字节流由inputstream和outputstream处理,而字符流由reader和writer处理,

InputStream提供的最重要的方法是

read();

read(byte[] b);

read(byte[] b, int off, int len);

OutputStream提供的最重要的方法是

write(int b);

write(byte[] b);

write(byte[] b, int off , int  len);

 4. I/O应用的一个例子

Java代码 
import java.io.*;   
public class TestIO{   
    public static void main(String[] args) throws IOException{   
//1.以行为单位从一个文件读取数据   
    BufferedReader in =new BufferedReader(new FileReader(\"F:   
epalonTestIO.java\"));   
    String s, s2 = new String();   
    while((s = in.readLine()) != null)   
        s2 += s + "\\";   
    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.println((char)c);   
    in2.close();   
  
//3. 从内存取出格式化输入   
    try{   
        DataInputStream in3 =new DataInputStream(new ByteArrayInputStream(s2.getBytes()));   
        while(true)   
            System.out.println((char)in3.readByte());   
    }   
    catch(EOFException e){   
        System.out.println(\"End of stream\");   
    }   
  
//4. 输出到文件   
    try{   
        BufferedReader in4 =new BufferedReader(new StringReader(s2)); //把s2当作输入对象   
        PrintWriter out1 =new PrintWriter(new BufferedWriter(new FileWriter(\"F:epalon 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:epalon Data.txt\")));   
        out2.writeDouble(3.1415926);   
        out2.writeChars(" Thas was pi:writeChars ");   
        out2.writeBytes( "Thas was pi:writeByte ");   
        out2.close();   
        DataInputStream in5 = new DataInputStream(new BufferedInputStream(new FileInputStream(\"F:epalon 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:epalon rtest.dat\", \"rw\");   
    for(int i=0; i<10; i++)   
        rf.writeDouble(i*1.414);   
    rf.close();   
  
    rf = new RandomAccessFile(\"F:epalon rtest.dat\", \"r\");   
    for(int i=0; i<10; i++)   
        System.out.println(\"Value \" + i + \":\" + rf.readDouble());   
    rf.close();   
  
    rf = new RandomAccessFile(\"F:epalon rtest.dat\", \"rw\");   
    rf.seek(5*8);   
    rf.writeDouble(47.0001);   
    rf.close();   
  
    rf = new RandomAccessFile(\"F:epalon rtest.dat\", \"r\");   
    for(int i=0; i<10; i++)   
        System.out.println(\"Value \" + i + \":\" + rf.readDouble());   
    rf.close();   
    }   
} 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值