IO流

Posted zzl521

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO流相关的知识,希望对你有一定的参考价值。

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流的主要内容,如果未能解决你的问题,请参考以下文章

在 .net 中处理 pcm wav 流

此应用小部件片段中所有意图 (PendingIntents) 的逻辑流

JavaSE 一些技巧 04——IO流各种流常用代码整理

猜数小游戏升级版(IO流实现,对IO流进行加强理解运用)

利用IO(文件字符流)打印代码本身

JAVA IO流相关代码(Serializable接口,管道流PipedInputStream类,RandomAccessFile类相关代码)