JAVA IO流的一些基本操作(一)

一、IO流简介

Java IO操作主要指的是使用Java进行输入、输出操作,Java中的所有操作类都存放在java.io包中,在使用时需要导入此包。
在整个java.io包中最重要的就是5个类和一个接口。
五个类指的是File、OutputStream、InputStream、Writer、Reader;
一个接口指的是Serializable。
掌握了这些,IO流的核心就掌握了。
下面我们来看看代码示例

二、IO流代码示例

 /**
     * 缓冲字节输入流读取文件
     */
    @Test
    public void ioTest() throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\javaio\\demo.txt"));
        byte[] b = new byte[1024];
        int len = 0;
        while ((len = bis.read(b)) != -1)
        {
            System.out.println(new String(b, 0, len));
        }
        bis.close();
    }
/**
     * 缓冲字节流(字节拷贝)
     *
     * @throws IOException
     */
    @Test
    public void ioTest1() throws IOException {

        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\javaio\\demo.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:\\javaio\\demo1.txt"));

        byte[] b = new byte[1024];
        int len = 0;
        while ((len = bis.read(b)) != -1)
        {
            bos.write(b, 0, len);
        }
        bos.close();
        bis.close();
    }
/**
     * 缓冲字符流读取文件内容
     *
     * @throws IOException
     */
    public void ioTest3() throws IOException {

        BufferedReader br = new BufferedReader(new FileReader("D:\\javaio\\demo.txt"));
        String str;
        while ((str = br.readLine()) != null)
        {
            System.out.println(str);
        }
        br.close();
    }
/**
     * 缓冲字符流(文件拷贝)
     *
     * @throws IOException
     */
    public void ioTest4() throws IOException {

        BufferedReader br = new BufferedReader(new FileReader("D:\\javaio\\demo.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\javaio\\demo2.txt"));
        String str;
        while ((str = br.readLine()) != null)
        {
            bw.write(str);
            bw.newLine();
        }
        bw.close();
        br.close();
    }
/**
     * 转换流读取文件
     */
    @Test
    public void ioTest5() throws IOException {

        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\javaio\\demo.txt"), "GBK");
        char[] cbuf = new char[1024];
        int len;
        while ((len = isr.read(cbuf)) != -1)
        {
            System.out.println(new String(cbuf, 0, len));
        }
        isr.close();
    }
/**
     * 转换流copy
     * @throws IOException
     */
    @Test
    public void ioTest6() throws IOException {

        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\javaio\\demo.txt"));
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\javaio\\demo5.txt"));
        char[] c = new char[1024];
        int len;
        while((len = isr.read(c)) != -1){
            osw.write(c, 0, len);
        }
        osw.close();
        isr.close();
    }
/**
     * 对象序列化
     */
    @Test
    public void ioTest7 () throws IOException {

        ObjectOutputStream oop=new ObjectOutputStream(new FileOutputStream("D:\\javaio\\xuliehua.txt"));

        oop.writeObject(new Student(1,"gk",24));
        oop.close();
    }
/**
     * 对象反序列化
     * @throws Exception
     */
    @Test
    public void ioTest8() throws Exception{

        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("D:\\javaio\\xuliehua.txt"));
        Student s=(Student) ois.readObject();
        System.out.println(s);
        ois.close();

    }

三、总结

IO流
	|--字节流
		|--字节输入流
			InputStream
				int read():一次读取一个字节
				int read(byte[] bys):一次读取一个字节数组
			
				|--FileInputStream
				|--BufferedInputStream
		|--字节输出流
			OutputStream
				void write(int by):一次写一个字节
				void write(byte[] bys,int index,int len):一次写一个字节数组的一部分
				
				|--FileOutputStream
				|--BufferedOutputStream
	|--字符流
		|--字符输入流
			Reader
				int read():一次读取一个字符
				int read(char[] chs):一次读取一个字符数组
				
				|--InputStreamReader
					|--FileReader
				|--BufferedReader
					String readLine():一次读取一个字符串
		|--字符输出流
			Writer
				void write(int ch):一次写一个字符
				void write(char[] chs,int index,int len):一次写一个字符数组的一部分
				
				|--OutputStreamWriter
					|--FileWriter
				|--BufferedWriter
					void newLine():写一个换行符
					
					void write(String line):一次写一个字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值