zoukankan      html  css  js  c++  java
  • JavaIO简单代码实例

            最近又复习了下JavaIO写了些实例代码都很简单但是能体现大部分方法的用法。

    IO流实现文件的拷贝   几种不同的方法:

    package com.wxisme.TestIO;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    /**
     * 字节流拷贝文本文件
     * @author wxisme
     *
     */
    
    public class StreamOne {
    
        public static void main(String[] args) {
            String path = "E:" + File.separator + "test.txt";
            File file = new File(path);
            try {
                file.createNewFile();
            } catch (IOException e) {
                System.out.println("创建文件失败");
                e.printStackTrace();
            }
            InputStream is = null;
            try {
                is = new FileInputStream(file);
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }
            String fileName = "E:" + File.separator + "Bullet.java";
            OutputStream os = null;
            try {
                os = new FileOutputStream(fileName,true);
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }
            byte[] b = new byte[10];
            int len = 0;
            try {
                while((len = is.read(b)) != -1) {
                    os.write(b, 0, len);
                }
                os.flush();//强制刷出缓冲区
            } catch (IOException e) {
                
                e.printStackTrace();
            }finally {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            
            System.exit(0);
            
        }
    
    }
    package com.wxisme.TestIO;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Reader;
    import java.io.Writer;
    
    
    /**
     * 字节流拷贝文件
     * @author wxisme
     *
     */
    
    public class StreamTwo {
    
        public static void main(String[] args) {
            String path = "E:" + File.separator + "test.txt";
            String name = "E:" + File.separator + "Bullet.java";
            Reader r = null;
            try {
                r = new FileReader(name);
            } catch (FileNotFoundException e) {
                System.out.println("创建字符输入流失败");
                e.printStackTrace();
            }
            Writer w = null;
            try {
                w = new FileWriter(path);
            } catch (IOException e) {
                System.out.println("创建字符输出流失败");
                e.printStackTrace();
            }
            char[] cbuf = new char[10];
            int len = 0;
            try {
                while((len = r.read(cbuf)) != -1) {
                    //w.write(cbuf);
                    w.write(cbuf, 0, len);
                }
                w.flush();//强制刷出
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    w.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    r.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            
    
        }
    
    }
    package com.wxisme.TestIO;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintStream;
    import java.util.Scanner;
    
    /**
     * 重定向输入输出 实现文件的拷贝
     * @author wxisme
     *
     */
    
    public class Reset {
    
        public static void main(String[] args) throws FileNotFoundException {
            String src = "E:" + File.separator + "Bullet.java";
            String path = "E:" + File.separator + "test.txt";
            FileInputStream fis = new FileInputStream(src);
            System.setIn(fis);
            
            PrintStream ps = new PrintStream(new FileOutputStream(path));
            System.setOut(ps);
            
            Scanner scan = new Scanner(System.in);
            scan.useDelimiter("
    ");//以换行符为分隔符
            while(scan.hasNext()) {
                System.out.println(scan.next());
            }
        }
    
    }

    处理流PrintStrream PrintWriter

    package com.wxisme.TestIO;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintStream;
    import java.io.PrintWriter;
    
    
    /**
     * 使用处理流printStream  printWriter
     * @author wxisme
     *
     */
    
    public class StreamFour {
    
        public static void main(String[] args) throws IOException {
            String path = "E:" + File.separator + "test.txt";
            PrintStream ps = new PrintStream(new FileOutputStream(path,true));
            ps.print("PrintStream");
            PrintWriter pw = new PrintWriter(new FileWriter(path));
            pw.print("PrintWriter");
            pw.close();
            ps.close();
        }
    
    }

    读取单个字符

    package com.wxisme.TestIO;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.io.StringReader;
    import java.util.Scanner;
    
    
    /**
     * 读取单个字符
     * @author wxisme
     *
     */
    
    public class ReaderOne {
    
        public static void main(String[] args) throws IOException {
            Scanner scan = new Scanner(System.in);
            String str = scan.next();
            Reader r = new StringReader(str);
            char[] cbuf = new char[10];
            while(r.read(cbuf,0,1) != -1) {
                char c = cbuf[0];
                System.out.println(c);
            }
            r.close();
    
        }
    
    }

    转换流

    package com.wxisme.TestIO;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    
    /**
     * 使用转换流
     * @author wxisme
     *
     */
    
    public class StreamThree {
    
        public static void main(String[] args) throws IOException {
            
            /*
             * 输入流底层使用字节流,然后使用转换流把字节流转换成字符流,并且指定解码字符集。
             * 然后把字符流包装成缓冲流,按行读取文件。
             * 乱码问题的两个主要原因:
             *    1. 解码字符集与编码字符集不统一
             *    2. 读取字节缺少,长度丢失。
             */
            String path = "E:" + File.separator + "Bullet.java";
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(
                            new FileInputStream(
                                    new File(path)),"utf-8"));
            String str;
            while((str = br.readLine()) != null) {
                System.out.println(str);
            }
            br.close();
    
        }
    
    }

    关闭文件的工具方法的两种写法:

    package com.wxisme.TestIO;
    
    import java.io.Closeable;
    import java.io.IOException;
    
    /**
     * 关闭文件资源的工具类  有两种实现方法   可以实现一次关闭多个文件,先打开的文件后关闭
     * @author wxisme
     *
     */
    
    public class CloseAll {
        
        /**
         * 使用多态    可变参数   可以有多个形参以数组的形式   可变形参必须在所有参数的最后
         * @param io
         */
        public static void closeAll1(Closeable ... io) {
            for(Closeable temp : io) {
                if(temp != null) {
                    try {
                        temp.close();
                    } catch (IOException e) {
                        System.out.println("文件关闭失败");
                        e.printStackTrace();
                    }
                }
            }
        }
        
        /**
         * 泛型方法   使用泛型方法和可变参数
         * @param io
         */
        
        public static <T extends Closeable> void closeAll2(Closeable ... io) {
            for(Closeable temp : io) {
                if(temp != null) {
                    try {
                        temp.close();
                    } catch (IOException e) {
                        System.out.println("文件关闭失败");
                        e.printStackTrace();
                    }
                }
            }
        }
        
    
    }
  • 相关阅读:
    iOS 面试题搜集
    iOS 常用第三方类库、完整APP示例
    iOS 键盘遮挡输入 解决办法
    iOS UIColor RGB HEX
    iOS APP性能优化
    iOS Swift 数组 交换元素的两种方法
    iOS CoreData primitive accessor
    iOS Start developing ios apps (OC) pdf
    iOS 传值方式
    iOS IB_DESIGNABLE IBInspectable @IBDesignable @IBInspectable 加速UI开发
  • 原文地址:https://www.cnblogs.com/wxisme/p/4375619.html
Copyright © 2011-2022 走看看