Java输入输出流简单案例

package com.jckb;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;

public class Test {
    public static void main(String[] args) {
        // m();
        // inputStreamDemo();
        // outputStreamDemo();
        m8();
    }

    // 序列输入流
    static void m8() {
        InputStream is = null;
        ObjectInputStream ois = null;
        File file = null;
        try {
            String pathname = "D://file6.txt";
            file = new File(pathname);
            is = new FileInputStream(file);
            ois = new ObjectInputStream(is);
            Object obj=ois.readObject();
            if(obj instanceof Student){
                Student stu =(Student)obj;
                System.out.println(stu.toString());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {

            e.printStackTrace();
        }
    }

    // 序列输出流
    static void m7() {
        OutputStream out = null;
        ObjectOutputStream os = null;
        try {
            out = new FileOutputStream("D://file6.txt");
            os = new ObjectOutputStream(out);
            Student stu = new Student("张三", 20);
            os.writeObject(stu);
            System.out.println("序列号成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                os.flush();
                os.close();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    // 带缓冲的字符输出流
    static void m6() {
        Writer w = null;
        BufferedWriter bw = null;
        try {
            w = new FileWriter("D://file5.txt");
            bw = new BufferedWriter(w);
            String str = "再见2016,你好2017!";
            bw.write(str);
            System.out.println("写入成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭流
            try {
                if (bw != null) {
                    bw.flush();
                    bw.close();
                }
                if (w != null) {
                    w.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    }

    // 带缓冲的字符输入流
    static void m5() {
        Reader in = null;
        BufferedReader br = null;
        try {
            in = new FileReader("D://file4.txt");
            br = new BufferedReader(in);
            String result = null;
            while ((result = br.readLine()) != null) {
                System.out.println(result);
            }
            br.close();
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 字符输入流
    static void m4() {
        FileReader fr = null;
        try {
            fr = new FileReader("D://file4.txt");
            char[] cbuf = new char[1024];
            int result = -1;
            while ((result = fr.read(cbuf)) != -1) {
                String s = new String(cbuf, 0, result);
                System.out.println("result=" + result);
                System.out.println(s);
            }
            fr.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 字符输出流
    static void m3() {
        FileWriter w = null;
        try {
            w = new FileWriter(new File("D://file4.txt"));
            String str = "你好2017!";
            w.write(str);
            System.out.println("写入成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                w.flush();
                w.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    // 缓冲流
    static void m2() {
        InputStream is;
        BufferedInputStream bs = null;
        try {
            is = new FileInputStream("D:\\file3.txt");
            bs = new BufferedInputStream(is);
            byte[] b = new byte[24];

            int result;
            while ((result = bs.read(b)) != -1) {
                String chunk = new String(b, 0, result);
                System.out.println(chunk);
            }
            bs.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    static void m() {
        System.out.println(File.pathSeparator);
        System.out.println(File.pathSeparatorChar);
        System.out.println(File.separator);
        System.out.println(File.separatorChar);
        File file = new File("D:\\file2.doc");
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        boolean b = file.exists();
        System.out.println(b);
    }

    // 字符流的读入
    static void inputStreamDemo() {
        String pathname = "D:\\file3.txt";
        File file = new File(pathname);
        FileInputStream in = null;
        try {
            in = new FileInputStream(file);
            System.out.println("字节数为:" + in.available());

            int data = -1;
            // read() while((data=in.read())!=-1){
            System.out.println((char) data);

            // 带缓冲区的字符流的读取read(byte[]b)
            byte[] b = new byte[in.available()];
            while (in.read(b) != -1) {
                for (byte item : b) {
                    System.out.println((char) item);
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    // 字符流的写出
    static void outputStreamDemo() {
        String pathname = "D:\\file.txt";
        FileOutputStream os = null;
        try {
            os = new FileOutputStream(new File(pathname), true);
            byte[] b = { ‘a‘, ‘b‘, ‘c‘, ‘v‘ };
            os.write(b);
            System.out.println("写入成功!");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
package com.jckb;

import java.io.Serializable;

/**学生类包含姓名、年龄
 *
 * @author gx
 *
 */

public class Student implements Serializable{

    private static final long serialVersionUID = 1L;
    private String name;//姓名
    private int age ;//年龄

    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return name+"---"+age;
    }

}

 
时间: 2024-10-05 17:29:15

Java输入输出流简单案例的相关文章

Java输入输出流(1)

1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO. 流IO的好处是简单易用,缺点是效率较低.块IO效率很高,但编程比较

Java 输入输出流 转载

转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在

Java输入输出流(3)

8. 字符流Writer/Reader  Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示.为此,JAVA中引入了处理字符的流. 1. Reader抽象类 用于读取字符流的抽象类.子类必须实现的方法只有 read(char[], int, int) 和 close().但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能. 1) FileReader :与FileInputStream对应 主要用来读取字符文件,使用缺省的字符编码,有三种构

Java输入输出流总结(转载)

Java输入输出流总结 一.介绍 流是数据源或数据目标的输入或输出设备的抽象表示.支持流输入和输出的主要包是java.io,但是也有其他的包,比如java.nio.file.java.io包支持两种类型的流--包含二进制数据的字节流和包含字符数据的字符流. 当写数据到字节流中时,数据会以字节序列的形式写到流中,与它们在内存中的形式完全一样,在这个过程中不会发生数据转换.即java.io包中的InputStream和OutputStream的派生类,通常用来读取二进制数据,如图像和声音. 将字符串

java输入输出流及文件操作

*Author:Yuanhonglong *Date:2013-11-29 *1948281915package mine.file.Read_Write;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java

Java输入/输出流体系

在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流:按字符读取. 字符流读取方便,字节流功能强大,当不能用字符流时,可以用字节流. 字节流基类:InputStream.OutputStream InputStream方法: OutputStream方法: 字符流基类:Reader.Writer Reader方法: Writer方法: 2.输入输出流体

JAVA输入/输出流(字节流、字符流、缓冲流)

JAVA输入/输出流 前期知识准备 1.基本java语法 基本原理: 程序在运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流对象.输入流的指向称作它的源,程序从指向源的输入流中读取源中数据.另一方面,程序在处理数据后,可能需要将处理结果写入到永久的存储媒介中或传给其他应用程序,这就需要使用输出流对象.输出流的指向称作它的目的地,程序通过向输出流中写入数据把数据传送到目的地. (本博文只给出文件字节流,文件字符流,缓冲流实例) 文件字节流: FileInputSt

Java输入输出流

1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO. 流IO的好处是简单易用,缺点是效率较低.块IO效率很高,但编程比较

java输入输出流总结 转载

一.基本概念 1.1 什么是IO?     IO(Input/Output)是计算机输入/输出的接口.Java中I/O操作主要是指使用Java进行输入,输出操作.     Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.      任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法.Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO.