zoukankan      html  css  js  c++  java
  • IO流数据读写总结

    1.用java自带的IO读写方法 官方API网站:http://docs.oracle.com/javase/7/docs/api/

    2.Apache的Commons-io-2.4.jar中的方法,参考文档:http://commons.apache.org/proper/commons-io/javadocs/api-2.4/index.html

    /*    
     * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写数据
     * 常用方法请参考帮助文档
     * */
        public  void readWriteCopyFile(){
            File file1 = new File("c:/to.txt");
            File file2 = new File("c:/to_new.txt");
            try {
                String input = FileUtils.readFileToString(file1,"gb2312");
                System.out.println(input);
                FileUtils.copyFile(file1, file2);
            
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
              String fileName = "C:/to.txt";
              File file = new File(fileName);
              String fileContent = "";
             
              fileContent +="Helloworld";
              try {
                   FileUtils.writeStringToFile(file, fileContent, "gb2312");
              } catch (IOException e) {
                   e.printStackTrace();
                }
        }
        
        /*    
         * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写数据
         * */
        public  void URLToFileTest(){
            try {
                URL url = new URL("http://www.163.com");  
                
                File file = new File("c:\163.html");  
                  
                FileUtils.copyURLToFile(url, file);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  
        }  
            
        /*    
         * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写url内容数据
         * */
        public  void readURL() throws IOException{
    
            InputStream in = new URL( "http://www.blogjava.net/ashutc/archive/2010/07/13/325933.html" ).openStream();
           
             try {
                 
                 System.out.println( IOUtils.toString( in ) );
             } finally {
               IOUtils.closeQuietly(in);
             }
    
    
        }
        
        /*    
         * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写url内容数据
         * */
        public  void downTolocal(){
    
    
              try {
                InputStream in = new URL("http://img4.cache.netease.com/tech/2015/12/10/201512101531442cb6f_550.png").openStream();
                
                  byte [] gif = IOUtils.toByteArray(in);
                  //IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));    //将字符串内容直接写到文件中
                  FileUtils.writeByteArrayToFile(new File("c:/test.png"),gif) ;            //将字节数组内容写到文件中
                  System.out.println("done");
                  IOUtils.closeQuietly(in);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
    
        }
          
        /*
         * 使用java自带的带有缓存区字节读写数据---提高读写速度
         *  
         */
        public void RwByByteStream() {
    
                File fileIn = new File("D:/java.docx");
                File fileOut = new File("D:/java_new.docx");
                long before = System.currentTimeMillis();
                FileInputStream fis = null;
                FileOutputStream fos = null;
                try {
                    fis = new FileInputStream(fileIn);
                    fos = new FileOutputStream(fileOut);
                } catch (FileNotFoundException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                
                BufferedInputStream bis = new BufferedInputStream(fis,100000);        //设置缓冲区及大小
                BufferedOutputStream bos = new BufferedOutputStream(fos,100000);    //设置输出流缓冲区及大小
                byte [] buffer = new byte[10000];
                int l;
                int num = 0;
                try {
                    while((l=bis.read(buffer))!=-1){
                        bos.write(buffer, 0, l);
                        num++;
                    }
                    System.out.println(System.currentTimeMillis()-before+"ms");
                    System.out.println(num);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                finally{
                    try {
                        bos.close();
                        fos.close();
                        bis.close();
                        fis.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
        
    
        }
    
        
    
        /*
         * 使用java字符流读写数据
         * 
         * */
        public void RWByCharStream() {
                
                try {
                    //File file = new File("d:/java.txt");
                    FileInputStream fis = new FileInputStream("d:/java.txt");
                    FileOutputStream fos = new FileOutputStream("d:/java_new.txt",true);
                    InputStreamReader isr = new InputStreamReader(fis, "gb2312");
                    OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312");
                    char input[] = new char[100];
                    int l = 0;
                    while ((l = isr.read(input)) != -1) {
                        //String inputString = new String(input,0,l);
                        osw.write(input,0,l);
                    }
                    isr.close();
                    fis.close();
                    osw.close();
                    fos.close();
                    System.out.println("done");
                    
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }    
        
        /*
         * 使用java缓冲区字符流读写数据
         * 
         * */
        public void RWByBufferedCharStream() {
            
                try {
                    
                    //File file = new File("d:/java.txt");
                    FileInputStream fis = new FileInputStream("d:/java.txt");
                    FileOutputStream fos = new FileOutputStream("d:/java_new.txt",true);    //加true表示追加写到这个文件中,否则覆盖此文件    
                    InputStreamReader isr = new InputStreamReader(fis, "gb2312");
                    OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312");
                    
                    BufferedReader br = new BufferedReader(isr);    //设置缓冲区
                    BufferedWriter bw = new BufferedWriter(osw);
    //                PrintWriter pw = new PrintWriter(osw);
                    
                    String input;
                    while ((input = br.readLine()) != null) {
                        bw.write(input);
                        bw.newLine();
                        System.out.println(input);
    //                    pw.println(input);
                    }
                    br.close();        //各流后打开的先关闭,先打开后关闭
                    bw.flush();
                    bw.close();
    //                pw.close();
                    isr.close();
                    fis.close();
                    osw.close();
                    fos.close();
                    System.out.println("done");
    
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        
        }
        
    }
  • 相关阅读:
    移动端适配原理浅析
    springMVC框架下——通用接口之图片上传接口
    Nginx服务器
    sql sever和mysql 卸载及oracle安装
    高清图片爬取
    中国部分大学排名爬虫
    selenium和PhantomJS的安装
    NYOJ2—括号配对问题
    爬虫之小说爬取
    数据库系统概论书本基础知识
  • 原文地址:https://www.cnblogs.com/gongjian/p/6130955.html
Copyright © 2011-2022 走看看