java 常用的文件流 总结记录


在这里插入图片描述

一般都是用字符流来从文件读取信息的, 有关实体类对象信息的存储是是用字节流中的对象流来存储, 当然, 实体类需要实现 Seralizable接口 来实现序列化

Writer / Reader

BufferedWriter / BufferedReader

package test.file;

import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.Exception;

public class Writer_Reader_Demo {
    static BufferedWriter bw = null;
    static BufferedReader br = null;
    
	public static void BufferedWriterTest ( ){
		try {
            bw = new BufferedWriter( new FileWriter( "F:\\test.txt" ) );
            String line = System.getProperty( "line.separator" );
            bw.write( "Hello World !" + line );
            bw.write( "Hello Java !" + line );
            bw.flush( );
        } catch ( Exception e ) {
            e.printStackTrace( );
        } finally {
            if( bw!=null ) {
                try {
                    bw.close();
                } catch ( IOException e ) {
                    e.printStackTrace( );
                }
            }
        }
	}
	
	public static void BufferedReaderTest (  ) {
        try {
            br = new BufferedReader( new FileReader( "F:\\test.txt" ) );

            String ans = null;
            while ( (ans=br.readLine()) != null ) {
                System.out.print( ans );
            }

        } catch ( Exception e ) {
            e.printStackTrace( );
        } finally {
            if( br!=null ) {
                try {
                    br.close();
                } catch ( IOException e ) {
                    e.printStackTrace( );
                }
            }
        }
	}

    public static void main ( String[] args ) {
    
		BufferedWriterTest( );
		
		BufferedReaderTest( );
		
    }

}

InputStream / OutputStream

ObjectOutputStream / ObjectInputStream

static ObjectOutputStream oos = null;

public static void ObjectOutputStreamTest ( ) {

    ArrayList<Person> person = new ArrayList<Person>(
        Arrays.asList( new Person[] {
            new Person( "001", "hhh", 12 ),
            new Person( "003", "iii", 18 ),
            new Person( "002", "aaa", 13 )
        } )
    );
    
    try {
        oos = new ObjectOutputStream( new FileOutputStream( "D:\\person_date.txt" ) );
        oos.writeObject( person );
        oos.flush();
    } catch ( Exception e ) {
        e.printStackTrace( );
    }
}
static ObjectInputStream ois = null;

public static void ObjectInputStreamTest ( ) {

    ArrayList<Person> person = new ArrayList<Person>( );

    try {
        ois = new ObjectInputStream( new FileInputStream( "D:\\person_date.txt" ) );
        person = (ArrayList<Person>)ois.readObject();

    } catch ( Exception e ) {
        e.printStackTrace( );
    }

    for ( Person p : person ) {
        System.out.println(
                "no :" + p.getNo() +"\n"+
                "name: " + p.getName() +"\n"+
                "age: " +p.getAge() +"\n" );
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值