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流的主要内容,如果未能解决你的问题,请参考以下文章
此应用小部件片段中所有意图 (PendingIntents) 的逻辑流
JAVA IO流相关代码(Serializable接口,管道流PipedInputStream类,RandomAccessFile类相关代码)