java的IO(笔记)

    /**  
     * 删除一个文件  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            if(f.exists()){  
                f.delete();  
            }else{  
                System.out.println("文件不存在");  
            }  
              
        }  
    } 

	    /**  
     * 创建一个文件夹  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) {  
            String fileName="D:"+File.separator+"hello";  
            File f=new File(fileName);  
            f.mkdir();  
        }  
    } 


	    /**  
     * 使用list列出指定目录的全部文件  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) {  
            String fileName="D:"+File.separator;  
            File f=new File(fileName);  
            String[] str=f.list();  
            for (int i = 0; i < str.length; i++) {  
                System.out.println(str[i]);  
            }  
        }  
    } 

	    /**  
     * 使用listFiles列出指定目录的全部文件  
     * listFiles输出的是完整路径  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) {  
            String fileName="D:"+File.separator;  
            File f=new File(fileName);  
            File[] str=f.listFiles();  
            for (int i = 0; i < str.length; i++) {  
                System.out.println(str[i]);  
            }  
        }  
    } 

	    /**  
     * 使用isDirectory判断一个指定的路径是否为目录  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) {  
            String fileName="D:"+File.separator;  
            File f=new File(fileName);  
            if(f.isDirectory()){  
                System.out.println("YES");  
            }else{  
                System.out.println("NO");  
            }  
        }  
    } 


	    /**  
     * 列出指定目录的全部内容  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) {  
            String fileName="D:"+File.separator;  
            File f=new File(fileName);  
            print(f);  
        }  
        public static void print(File f){  
            if(f!=null){  
                if(f.isDirectory()){  
                    File[] fileArray=f.listFiles();  
                    if(fileArray!=null){  
                        for (int i = 0; i < fileArray.length; i++) {  
                            //递归调用  
                            print(fileArray[i]);  
                        }  
                    }  
                }  
                else{  
                    System.out.println(f);  
                }  
            }  
        }  
    } 

	    /**  
     * 使用RandomAccessFile写入文件  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            RandomAccessFile demo=new RandomAccessFile(f,"rw");  
            demo.writeBytes("asdsad");  
            demo.writeInt(12);  
            demo.writeBoolean(true);  
            demo.writeChar('A');  
            demo.writeFloat(1.21f);  
            demo.writeDouble(12.123);  
            demo.close();     
        }  
    } 


	    /**  
     * 字节流  
     * 向文件中写入字符串  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            OutputStream out =new FileOutputStream(f);  
            String str="你好";  
            byte[] b=str.getBytes();  
            out.write(b);  
            out.close();  
        }  
    } 


	    /**  
     * 字节流  
     * 向文件中一个字节一个字节的写入字符串  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            OutputStream out =new FileOutputStream(f);  
            String str="你好";  
            byte[] b=str.getBytes();  
            for (int i = 0; i < b.length; i++) {  
                out.write(b[i]);  
            }  
            out.close();  
        }  
    } 

	    /**  
     * 字节流  
     * 向文件中追加新内容:  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            OutputStream out =new FileOutputStream(f,true);  
            String str="Rollen";  
            //String str="\r\nRollen";  可以换行  
            byte[] b=str.getBytes();  
            for (int i = 0; i < b.length; i++) {  
                out.write(b[i]);  
            }  
            out.close();  
        }  
    } 

	    /**  
     * 字节流  
     * 读文件内容  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            InputStream in=new FileInputStream(f);  
            byte[] b=new byte[1024];  
            in.read(b);  
            in.close();  
            System.out.println(new String(b));  
        }  
    } 

	    /**  
     * 字节流  
     * 读文件内容  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            InputStream in=new FileInputStream(f);  
            byte[] b=new byte[1024];  
            int len=in.read(b);  
            in.close();  
            System.out.println("读入长度为:"+len);  
            System.out.println(new String(b,0,len));  
        }  
    } 

	    /**  
     * 字节流  
     * 读文件内容,节省空间  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            InputStream in=new FileInputStream(f);  
            byte[] b=new byte[(int)f.length()];  
            in.read(b);  
            System.out.println("文件长度为:"+f.length());  
            in.close();  
            System.out.println(new String(b));  
        }  
    } 

	    /**  
     * 字节流  
     * 读文件内容,节省空间  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            InputStream in=new FileInputStream(f);  
            byte[] b=new byte[(int)f.length()];  
            for (int i = 0; i < b.length; i++) {  
                b[i]=(byte)in.read();  
            }  
            in.close();  
            System.out.println(new String(b));  
        }  
    } 

	    /**  
     * 字节流  
     *读文件  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            InputStream in=new FileInputStream(f);  
            byte[] b=new byte[1024];  
            int count =0;  
            int temp=0;  
            while((temp=in.read())!=(-1)){  
                b[count++]=(byte)temp;  
            }  
            in.close();  
            System.out.println(new String(b));  
        }  
    } 

	    /**  
     * 字符流  
     * 写入数据  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            Writer out =new FileWriter(f);  
            String str="hello";  
            out.write(str);  
            out.close();  
        }  
    } 

	    /**  
     * 字符流  
     * 从文件中读出内容  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            char[] ch=new char[100];  
            Reader read=new FileReader(f);  
            int count=read.read(ch);  
            read.close();  
            System.out.println("读入的长度为:"+count);  
            System.out.println("内容为"+new String(ch,0,count));  
        }  
    } 


	    /**  
     * 字符流  
     * 从文件中读出内容  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName="D:"+File.separator+"hello.txt";  
            File f=new File(fileName);  
            char[] ch=new char[100];  
            Reader read=new FileReader(f);  
            int temp=0;  
            int count=0;  
            while((temp=read.read())!=(-1)){  
                ch[count++]=(char)temp;  
            }  
            read.close();  
            System.out.println("内容为"+new String(ch,0,count));  
        }  
    } 

	    /**  
     * 文件的复制  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            if(args.length!=2){  
                System.out.println("命令行参数输入有误,请检查");  
                System.exit(1);  
            }  
            File file1=new File(args[0]);  
            File file2=new File(args[1]);  
              
            if(!file1.exists()){  
                System.out.println("被复制的文件不存在");  
                System.exit(1);  
            }  
            InputStream input=new FileInputStream(file1);  
            OutputStream output=new FileOutputStream(file2);  
            if((input!=null)&&(output!=null)){  
                int temp=0;  
                while((temp=input.read())!=(-1)){  
                    output.write(temp);  
                }  
            }  
            input.close();  
            output.close();   
        }  
    } 

	    /**  
     * 将字节输出流转化为字符输出流  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName= "d:"+File.separator+"hello.txt";  
            File file=new File(fileName);  
            Writer out=new OutputStreamWriter(new FileOutputStream(file));  
            out.write("hello");  
            out.close();  
        }  
    } 

	    /**  
     * 将字节输入流变为字符输入流  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String fileName= "d:"+File.separator+"hello.txt";  
            File file=new File(fileName);  
            Reader read=new InputStreamReader(new FileInputStream(file));  
            char[] b=new char[100];  
            int len=read.read(b);  
            System.out.println(new String(b,0,len));  
            read.close();  
        }  
    } 

	    /**  
     * 使用内存操作流将一个大写字母转化为小写字母  
     * */ 
    import java.io.*;  
    class hello{  
        public static void main(String[] args) throws IOException {  
            String str="ROLLENHOLT";  
            ByteArrayInputStream input=new ByteArrayInputStream(str.getBytes());  
            ByteArrayOutputStream output=new ByteArrayOutputStream();  
            int temp=0;  
            while((temp=input.read())!=-1){  
                char ch=(char)temp;  
                output.write(Character.toLowerCase(ch));  
            }  
            String outStr=output.toString();  
            input.close();  
            output.close();  
            System.out.println(outStr);  
        }  
    } 

    /**  
     * 验证管道流  
     * */ 
    import java.io.*;  
     
    /**  
     * 消息发送类  
     * */ 
    class Send implements Runnable{  
        private PipedOutputStream out=null;  
        public Send() {  
            out=new PipedOutputStream();  
        }  
        public PipedOutputStream getOut(){  
            return this.out;  
        }  
        public void run(){  
            String message="hello , Rollen";  
            try{  
                out.write(message.getBytes());  
            }catch (Exception e) {  
                e.printStackTrace();  
            }try{  
                out.close();  
            }catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }  
     
    /**  
     * 接受消息类  
     * */ 
    class Recive implements Runnable{  
        private PipedInputStream input=null;  
        public Recive(){  
            this.input=new PipedInputStream();  
        }  
        public PipedInputStream getInput(){  
            return this.input;  
        }  
        public void run(){  
            byte[] b=new byte[1000];  
            int len=0;  
            try{  
                len=this.input.read(b);  
            }catch (Exception e) {  
                e.printStackTrace();  
            }try{  
                input.close();  
            }catch (Exception e) {  
                e.printStackTrace();  
            }  
            System.out.println("接受的内容为 "+(new String(b,0,len)));  
        }  
    }  
    /**  
     * 测试类  
     * */ 
    class hello{  
        public static void main(String[] args) throws IOException {  
            Send send=new Send();  
            Recive recive=new Recive();  
            try{  
    //管道连接  
                send.getOut().connect(recive.getInput());  
            }catch (Exception e) {  
                e.printStackTrace();  
            }  
            new Thread(send).start();  
            new Thread(recive).start();  
        }  
    } 
	 /**  
     * 测试 结束  
     * */ 

	     /**  
     * 使用PrintStream进行输出  
     * */ 
    import java.io.*;  
     
    class hello {  
        public static void main(String[] args) throws IOException {  
            PrintStream print = new PrintStream(new FileOutputStream(new File("d:" 
                    + File.separator + "hello.txt")));  
            print.println(true);  
            print.println("Rollen");  
            print.close();  
        }  
    } 

	    /**  
     * 使用PrintStream进行输出  
     * 并进行格式化  
     * */ 
    import java.io.*;  
    class hello {  
        public static void main(String[] args) throws IOException {  
            PrintStream print = new PrintStream(new FileOutputStream(new File("d:" 
                    + File.separator + "hello.txt")));  
            String name="Rollen";  
            int age=20;  
            print.printf("姓名:%s. 年龄:%d.",name,age);  
            print.close();  
        }  
    } 

	    /**  
     * 使用OutputStream向屏幕上输出内容   
     * */ 
    import java.io.*;  
    class hello {  
        public static void main(String[] args) throws IOException {  
            OutputStream out=System.out;  
            try{  
                out.write("hello".getBytes());  
            }catch (Exception e) {  
                e.printStackTrace();  
            }  
            try{  
                out.close();  
            }catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    } 

	/**  
 * 为System.out.println()重定向输出  
 * */ 
public class systemDemo{  
    public static void main(String[] args){  
        // 此刻直接输出到屏幕  
        System.out.println("hello");  
        File file = new File("d:" + File.separator + "hello.txt");  
        try{  
            System.setOut(new PrintStream(new FileOutputStream(file)));  
        }catch(FileNotFoundException e){  
            e.printStackTrace();  
        }  
        System.out.println("这些内容在文件中才能看到哦!");  
    }  
} 


/**  
 * System.err重定向 这个例子也提示我们可以使用这种方法保存错误信息  
 * */ 
public class systemErr{  
    public static void main(String[] args){  
        File file = new File("d:" + File.separator + "hello.txt");  
        System.err.println("这些在控制台输出");  
        try{  
            System.setErr(new PrintStream(new FileOutputStream(file)));  
        }catch(FileNotFoundException e){  
            e.printStackTrace();  
        }  
        System.err.println("这些在文件中才能看到哦!");  
    }  
} 

/**  
 * System.in重定向  
 * */ 
public class systemIn{  
    public static void main(String[] args){  
        File file = new File("d:" + File.separator + "hello.txt");  
        if(!file.exists()){  
            return;  
        }else{  
            try{  
                System.setIn(new FileInputStream(file));  
            }catch(FileNotFoundException e){  
                e.printStackTrace();  
            }  
            byte[] bytes = new byte[1024];  
            int len = 0;  
            try{  
                len = System.in.read(bytes);  
            }catch(IOException e){  
                e.printStackTrace();  
            }  
            System.out.println("读入的内容为:" + new String(bytes, 0, len));  
        }  
    }  
} 

/**  
 * 使用缓冲区从键盘上读入内容  
 * */ 
public class BufferedReaderDemo{  
    public static void main(String[] args){  
        BufferedReader buf = new BufferedReader(  
                new InputStreamReader(System.in));  
        String str = null;  
        System.out.println("请输入内容");  
        try{  
            str = buf.readLine();  
        }catch(IOException e){  
            e.printStackTrace();  
        }  
        System.out.println("你输入的内容是:" + str);  
    }  
} 


/**  
 * Scanner的小例子,从键盘读数据  
 * */ 
public class ScannerDemo{  
    public static void main(String[] args){  
        Scanner sca = new Scanner(System.in);  
        // 读一个整数  
        int temp = sca.nextInt();  
        System.out.println(temp);  
        //读取浮点数  
        float flo=sca.nextFloat();  
        System.out.println(flo);  
        //读取字符  
        //...等等的,都是一些太基础的,就不师范了。  
    }  
} 

/**  
 * Scanner的小例子,从文件中读内容  
 * */ 
public class ScannerDemo{  
    public static void main(String[] args){  
 
        File file = new File("d:" + File.separator + "hello.txt");  
        Scanner sca = null;  
        try{  
            sca = new Scanner(file);  
        }catch(FileNotFoundException e){  
            e.printStackTrace();  
        }  
        String str = sca.next();  
        System.out.println("从文件中读取的内容是:" + str);  
    }  
} 

/**  
 * DataInputStream读出内容 
 * */ 
public class DataOutputStreamDemo{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "hello.txt");  
        char[] ch = { 'A', 'B', 'C' };  
        DataOutputStream out = null;  
        out = new DataOutputStream(new FileOutputStream(file));  
        for(char temp : ch){  
            out.writeChar(temp);  
        }  
        out.close();  
    }  
} 


/**  
 * DataInputStream写入内容 
 * */ 
 public class DataOutputStreamDemo{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "hello.txt");  
        DataInputStream input = new DataInputStream(new FileInputStream(file));  
        char[] ch = new char[10];  
        int count = 0;  
        char temp;  
        while((temp = input.readChar()) != 'C'){  
            ch[count++] = temp;  
        }  
        System.out.println(ch);  
    }  
} 


/**  
 * 将两个文本文件合并为另外一个文本文件  
 * */ 
public class SequenceInputStreamDemo{  
    public static void main(String[] args) throws IOException{  
        File file1 = new File("d:" + File.separator + "hello1.txt");  
        File file2 = new File("d:" + File.separator + "hello2.txt");  
        File file3 = new File("d:" + File.separator + "hello.txt");  
        InputStream input1 = new FileInputStream(file1);  
        InputStream input2 = new FileInputStream(file2);  
        OutputStream output = new FileOutputStream(file3);  
        // 合并流  
        SequenceInputStream sis = new SequenceInputStream(input1, input2);  
        int temp = 0;  
        while((temp = sis.read()) != -1){  
            output.write(temp);  
        }  
        input1.close();  
        input2.close();  
        output.close();  
        sis.close();  
    }  
} 

/**  
 * 一个压缩单个文件的例子
 * */
 public class ZipOutputStreamDemo1{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "hello.txt");  
        File zipFile = new File("d:" + File.separator + "hello.zip");  
        InputStream input = new FileInputStream(file);  
        ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(  
                zipFile));  
        zipOut.putNextEntry(new ZipEntry(file.getName()));  
        // 设置注释  
        zipOut.setComment("hello");  
        int temp = 0;  
        while((temp = input.read()) != -1){  
            zipOut.write(temp);  
        }  
        input.close();  
        zipOut.close();  
    }  
} 

/**  
 * 一次性压缩多个文件  
 * */ 
public class ZipOutputStreamDemo2{  
    public static void main(String[] args) throws IOException{  
        // 要被压缩的文件夹  
        File file = new File("d:" + File.separator + "temp");  
        File zipFile = new File("d:" + File.separator + "zipFile.zip");  
        InputStream input = null;  
        ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(  
                zipFile));  
        zipOut.setComment("hello");  
        if(file.isDirectory()){  
            File[] files = file.listFiles();  
            for(int i = 0; i < files.length; ++i){  
                input = new FileInputStream(files[i]);  
                zipOut.putNextEntry(new ZipEntry(file.getName()  
                        + File.separator + files[i].getName()));  
                int temp = 0;  
                while((temp = input.read()) != -1){  
                    zipOut.write(temp);  
                }  
                input.close();  
            }  
        }  
        zipOut.close();  
    }  
} 

/**  
 * ZipFile演示  
 * */ 
public class ZipFileDemo{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "hello.zip");  
        ZipFile zipFile = new ZipFile(file);  
        System.out.println("压缩文件的名称为:" + zipFile.getName());  
    }  
} 

/**  
 * 解压缩文件(压缩文件中只有一个文件的情况)  
 * */ 
public class ZipFileDemo2{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "hello.zip");  
        File outFile = new File("d:" + File.separator + "unZipFile.txt");  
        ZipFile zipFile = new ZipFile(file);  
        ZipEntry entry = zipFile.getEntry("hello.txt");  
        InputStream input = zipFile.getInputStream(entry);  
        OutputStream output = new FileOutputStream(outFile);  
        int temp = 0;  
        while((temp = input.read()) != -1){  
            output.write(temp);  
        }  
        input.close();  
        output.close();  
    }  
} 


/**  
 * 解压缩一个压缩文件中包含多个文件的情况  
 * */ 
public class ZipFileDemo3{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "zipFile.zip");  
        File outFile = null;  
        ZipFile zipFile = new ZipFile(file);  
        ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));  
        ZipEntry entry = null;  
        InputStream input = null;  
        OutputStream output = null;  
        while((entry = zipInput.getNextEntry()) != null){  
            System.out.println("解压缩" + entry.getName() + "文件");  
            outFile = new File("d:" + File.separator + entry.getName());  
            if(!outFile.getParentFile().exists()){  
                outFile.getParentFile().mkdir();  
            }  
            if(!outFile.exists()){  
                outFile.createNewFile();  
            }  
            input = zipFile.getInputStream(entry);  
            output = new FileOutputStream(outFile);  
            int temp = 0;  
            while((temp = input.read()) != -1){  
                output.write(temp);  
            }  
            input.close();  
            output.close();  
        }  
    }  
} 


/**  
 * 回退流操作  
 * */ 
public class PushBackInputStreamDemo{  
    public static void main(String[] args) throws IOException{  
        String str = "hello,rollenholt";  
        PushbackInputStream push = null;  
        ByteArrayInputStream bat = null;  
        bat = new ByteArrayInputStream(str.getBytes());  
        push = new PushbackInputStream(bat);  
        int temp = 0;  
        while((temp = push.read()) != -1){  
            if(temp == ','){  
                push.unread(temp);  
                temp = push.read();  
                System.out.print("(回退" + (char) temp + ") ");  
            }else{  
                System.out.print((char) temp);  
            }  
        }  
    }  
} 

    /**  
     * 取得本地的默认编码  
     * */ 
    public class CharSetDemo{  
        public static void main(String[] args){  
            System.out.println("系统默认编码为:" + System.getProperty("file.encoding"));  
        }  
    } 

	/**  
 * 乱码的产生  
 * */ 
public class CharSetDemo2{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "hello.txt");  
        OutputStream out = new FileOutputStream(file);  
        byte[] bytes = "你好".getBytes("ISO8859-1");  
        out.write(bytes);  
        out.close();  
    }  
} 


/**  
 * 实现具有序列化能力的类  
 * */ 
public class SerializableDemo implements Serializable{  
    public SerializableDemo(){  
          
    }  
    public SerializableDemo(String name, int age){  
        this.name=name;  
        this.age=age;  
    }  
    @Override 
    public String toString(){  
        return "姓名:"+name+"  年龄:"+age;  
    }  
    private String name;  
    private int age;  
} 

/**  
 * 实现具有序列化能力的类  
 * */ 
public class Person implements Serializable{  
    public Person(){  
 
    }  
 
    public Person(String name, int age){  
        this.name = name;  
        this.age = age;  
    }  
 
    @Override 
    public String toString(){  
        return "姓名:" + name + "  年龄:" + age;  
    }  
 
    private String name;  
    private int age;  
}  
/**  
 * 示范ObjectOutputStream  
 * */ 
public class ObjectOutputStreamDemo{  
    public static void main(String[] args) throws IOException{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(  
                file));  
        oos.writeObject(new Person("rollen", 20));  
        oos.close();  
    }  
} 


/**  
 * ObjectInputStream示范  
 * */ 
public class ObjectInputStreamDemo{  
    public static void main(String[] args) throws Exception{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectInputStream input = new ObjectInputStream(new FileInputStream(  
                file));  
        Object obj = input.readObject();  
        input.close();  
        System.out.println(obj);  
    }  
} 

/**  
 * 序列化和反序列化的操作  
 * */ 
public class ExternalizableDemo{  
    public static void main(String[] args) throws Exception{  
        ser(); // 序列化  
        dser(); // 反序列话  
    }  
 
    public static void ser() throws Exception{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(  
                file));  
        out.writeObject(new Person("rollen", 20));  
        out.close();  
    }  
 
    public static void dser() throws Exception{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectInputStream input = new ObjectInputStream(new FileInputStream(  
                file));  
        Object obj = input.readObject();  
        input.close();  
        System.out.println(obj);  
    }  
}  
 
class Person implements Externalizable{  
    public Person(){  
 
    }  
 
    public Person(String name, int age){  
        this.name = name;  
        this.age = age;  
    }  
 
    @Override 
    public String toString(){  
        return "姓名:" + name + "  年龄:" + age;  
    }  
 
    // 复写这个方法,根据需要可以保存的属性或者具体内容,在序列化的时候使用  
    @Override 
    public void writeExternal(ObjectOutput out) throws IOException{  
        out.writeObject(this.name);  
        out.writeInt(age);  
    }  
 
    // 复写这个方法,根据需要读取内容 反序列话的时候需要  
    @Override 
    public void readExternal(ObjectInput in) throws IOException,  
            ClassNotFoundException{  
        this.name = (String) in.readObject();  
        this.age = in.readInt();  
    }  
 
    private String name;  
    private int age;  
} 



/**  
 * 序列化和反序列化的操作  
 * */ 
public class serDemo{  
    public static void main(String[] args) throws Exception{  
        ser(); // 序列化  
        dser(); // 反序列话  
    }  
 
    public static void ser() throws Exception{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(  
                file));  
        out.writeObject(new Person1("rollen", 20));  
        out.close();  
    }  
 
    public static void dser() throws Exception{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectInputStream input = new ObjectInputStream(new FileInputStream(  
                file));  
        Object obj = input.readObject();  
        input.close();  
        System.out.println(obj);  
    }  
}  
 
class Person1 implements Serializable{  
    public Person1(){  
 
    }  
 
    public Person1(String name, int age){  
        this.name = name;  
        this.age = age;  
    }  
 
    @Override 
    public String toString(){  
        return "姓名:" + name + "  年龄:" + age;  
    }  
 
    // 注意这里  
    private transient String name;  
    private int age;  
} 



/**  
 * 序列化一组对象  
 * */ 
public class SerDemo1{  
    public static void main(String[] args) throws Exception{  
        Student[] stu = { new Student("hello", 20), new Student("world", 30),  
                new Student("rollen", 40) };  
        ser(stu);  
        Object[] obj = dser();  
        for(int i = 0; i < obj.length; ++i){  
            Student s = (Student) obj[i];  
            System.out.println(s);  
        }  
    }  
 
    // 序列化  
    public static void ser(Object[] obj) throws Exception{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(  
                file));  
        out.writeObject(obj);  
        out.close();  
    }  
 
    // 反序列化  
    public static Object[] dser() throws Exception{  
        File file = new File("d:" + File.separator + "hello.txt");  
        ObjectInputStream input = new ObjectInputStream(new FileInputStream(  
                file));  
        Object[] obj = (Object[]) input.readObject();  
        input.close();  
        return obj;  
    }  
}  
 
class Student implements Serializable{  
    public Student(){  
 
    }  
 
    public Student(String name, int age){  
        this.name = name;  
        this.age = age;  
    }  
 
    @Override 
    public String toString(){  
        return "姓名:  " + name + "  年龄:" + age;  
    }  
 
    private String name;  
    private int age;  
} 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值