java基础之 IO





/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ithings.common;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.io.Writer;

/**
 *
 * @author Administrator
 */
public class InputOutput {

    /************  输入流  ********************/
    public void InputStreamTest() throws Exception {
        //创建字节输入流对象
        InputStream in = new FileInputStream("abc.txt");

        //方法1 一次读取一个字节
        int result = 0;
        while ((result = in.read()) != -1) {
            System.out.print((char) result);
        }
        in.close();

        //方法2 一次读取一组字节
        byte[] buffer = new byte[10];
        int len = 0;
        while ((len = in.read(buffer)) != -1) {
            for (int i = 0; i < len; i++) {
                System.out.print((char) buffer[i]);
            }
        }
        in.close();
    }
    public void  ReaderTest() throws Exception{
        // 创建字符输入流对象
        Reader reader = new FileReader("abc.txt");

        char[] buffer = new char[1024];
        int len = 0;
        while ((len = reader.read(buffer)) != -1) {
            for (int i = 0; i < len; i++) {
                System.out.print(buffer[i]);
            }
        }
        reader.close();
    }
    /************  输出流  ********************/
    public void  OutputStreamTest() throws Exception{
        //1.从字符串输出到文件
        String ss = "hello java!" ;
        //1.1 创建字节输出流对象
	OutputStream out = new FileOutputStream("hello.txt");
        //1.2 write
        out.write(ss.getBytes());
        out.close();


        //2.从输入流中读取
        //2.1 创建输入流对象,用于读取文件
        InputStream in = new FileInputStream("java.avi");

        //2.2 创建输出流对象,用于存取文件
        OutputStream out = new FileOutputStream("java2.avi");

        //2.3 定义数组,用于存储读取的字节
        byte[] buffer = new byte[1024];
        int len = 0;

        //2.4 读写文件
        while ((len = in.read(buffer)) != -1) {
            out.write(buffer, 0, len);
        }

        //2.5 关闭资源
        out.close();
        in.close();
    }
    public void  WriterTest() throws Exception{
        //1.创建字符输入输出流
        Reader reader = new FileReader("hello.txt");
        Writer writer = new FileWriter("hello2.txt");

        //2.创建字符数组
        char[] buffer = new char[1024];
        int len = 0;

        //3.读写文件
        while ((len = reader.read(buffer)) != -1) {
            writer.write(buffer, 0, len);
        }

        //4.关闭资源
        writer.close();
        reader.close();
    }
    
    /************  包装流  ********************/
    public void BufferedInputOutputTest() throws Exception{
        //1.创建BufferedInputStream和BufferedOutputStream
        BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("hello.txt"));
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("hello2.txt"));

        //2.创建字节数组
        byte[] buffer = new byte[1024];
        int len = 0;

        //3.进行读写操作
        while ((len = bufferedInputStream.read(buffer)) != -1) {
            bufferedOutputStream.write(buffer, 0, len);
        }

        //4.关闭资源
        bufferedInputStream.close();
        bufferedOutputStream.close();
    }
    public void BufferedReaderWriterTest() throws Exception{
	//1.创建BufferedReader和BufferedWriter
	BufferedReader bufferedReader = new BufferedReader(new FileReader("hello.txt"));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("hello2.txt"));

         //2.进行读写操作 
        String str = "";
        int i = 0;
        while ((str = bufferedReader.readLine()) != null) {
            if (i > 0) {
                bufferedWriter.write("\n");
            }
            bufferedWriter.write(str);
            i++;
        }

        //关闭资源
        bufferedReader.close();
        bufferedWriter.close();
    }
    
    /************  转换流  ********************/
    public void InputStreamReaderTest() throws Exception{
        //1.将文件读取到字节流中
        InputStream in = new FileInputStream("hello.txt");
        
        //2.使用转换流转换为字符流
        Reader reader = new InputStreamReader(in);
        
        //3.将字符流放到缓冲流中
        BufferedReader bufferedReader = new BufferedReader(reader);
        
        //4.逐行读取
        String str = null;
        while((str = bufferedReader.readLine()) != null){
            System.out.println(str);
        }
        
        //5. 关闭流
        bufferedReader.close();
        reader.close();
        in.close();
    }
    
    public void OutputStreamWriterTest() throws Exception{
        //1.创建字节输出流
        OutputStream out = new FileOutputStream("hello2.txt");
        
        //2.使用转换流转换为字符流
        Writer writer = new OutputStreamWriter(out);
    }
    
    /************  对象流  ********************/
    public void ObjectOutputStreamTest() throws Exception{
        //1. 创建输出流对象
        OutputStream out = new FileOutputStream("d://hello.txt");
        
        //2.使用ObjectOutputStream把对象写到硬盘上
        ObjectOutputStream objOut = new ObjectOutputStream(out);
        Student student = new Student("lucy","famale");
        objOut.writeObject(student);
        
        //关闭流
        out.close();
        objOut.close();
    }
    
    public void ObjectInputStreamTest() throws Exception{
        //1. 将文件读取到输入流
        InputStream in = new FileInputStream("d://hello.txt");
        
        //2. 使用ObjectInputStream读取对象
        ObjectInputStream objIn = new ObjectInputStream(in);
        Object obj = objIn.readObject();
        
        //3. 关闭流
        objIn.close();
        in.close();
    }
    
    public void RandomAccessFileTest() throws Exception{
        RandomAccessFile randomAccessFile = new RandomAccessFile("d://hello.txt","rw");
        
        //读取文件
        String str = null;
        while((str = randomAccessFile.readLine()) != null){
            System.out.print(str);
        }
        
        //向文件中写入
        str = "Hello Java!";
        randomAccessFile.writeBytes(str);
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值