码迷,mamicode.com
首页 > 其他好文 > 详细

IO流

时间:2018-04-19 18:48:58      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:link   提高效率   leo   ted   nal   write   puts   input   ase   

IO流具体就是大家对各种基本流以及装饰流的组合,这里给大家配几种经典组合:

1  不管是字节流还是字符流都用上缓冲流性能会好也就是带有"Buffered"字样的流,这里用的是BufferedReader嵌套FileReader:

public class FirstCombination {

    public static void main(String[] args) throws FileNotFoundException {
        File f=new File("E:/hello.txt");
        BufferedReader br=null;
        if(f.exists()){
            try {
                br=new BufferedReader(new FileReader(f));
                String s=null;
                LinkedList<String> lists=new LinkedList<>();
                    while((s=br.readLine())!=null){
                        lists.add(s);
                    }
                ListIterator<String>  listIterator=lists.listIterator();
                while(listIterator.hasNext()){
                    listIterator.next();
                }
                while(listIterator.hasPrevious()){
                    System.out.println(listIterator.previous().toUpperCase());
                }
                
            }  catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(br!=null){
                    try {
                        br.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    

}

2 这是Android中的一段代码,注意读取与写入时的操作很经典

private void initAddressDB(String DBname){
        InputStream in=null;
        FileOutputStream fos=null;
        File files=getFilesDir();
        File file=new File(files,DBname);
        if(file.exists()){
            return;
        }
        try {
            in=getAssets().open(DBname);
            fos=new FileOutputStream(file);
            byte[] bytes=new byte[1024];
            int temp=-1;
            while((temp=in.read(bytes))!=-1){
                fos.write(bytes, 0, temp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                if(in!=null)
                    in.close();
                if(fos!=null)
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

3 看注释即可

public static void main(String[] args) {
        try {
            BufferedReader br=new BufferedReader(new FileReader(new File("E:/hello.txt")));
//            传统的装饰工作,略显冗余  用缓存流会显著提高效率  
//            PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter("E:/out.txt")));
//            只有PrintWriter有这种快捷操作哦  与第一种效率一样的
            PrintWriter pw=new PrintWriter(new File("E:/1out.txt"));
            String s=null;
            while((s=br.readLine())!=null){
                pw.println(s);
            }
            pw.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

 

IO流

标签:link   提高效率   leo   ted   nal   write   puts   input   ase   

原文地址:https://www.cnblogs.com/zzl521/p/8885119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!