java输入与输出(I/O)(二):常见输入输出流小结
来源:互联网 发布:河北农业大学网络课 编辑:程序博客网 时间:2024/06/07 02:42
过滤流:使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。
节点流:从特定的地方读写的流类,例如:磁盘或一块内存区域。
FileInputStream和FileOutputStream,节点流,用于从文件中读取或往文件中写入字节流。
BufferedInputStream和BufferedOutputStream,过滤流,需要使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率。
DataInputStream和DataOutputStream,多字节输入输出流,需要使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。
PipedInputStream和PipedOutputStream,管道流,用于线程间的通信。
1) 过滤输入输出流FilterInputStream、FilterOutputStream的使用
File f=new File("d:\\filetest\\1.txt"); FileInputStream fis=new FileInputStream(f); FilterInputStream filter=new FilterInputStream(fis); for(int i=0;i<f.length();i++) { System.out.print(filter.read()); } fis.close();
先创建节点输入流 FileInputStream,接着在节点流的基础上创建过滤输入流,进行读操作,循环输出。最后关闭节点输入流。同样过滤输出流也是一样创建,采用写操作。
2)DataOutputStream多字节输出流使用举例
File f=new File("C:\\Users\\Administrator\\Desktop\\filetest\\1.txt"); FileOutputStream fos=new FileOutputStream(f); DataOutputStream dos=new DataOutputStream(fos); try { dos.writeUTF("你项目完成了吗?"); dos.writeUTF("还没有"); dos.writeUTF("那还不加紧完成"); dos.writeUTF("知道了"); } catch(Exception e) {} dos.close(); }
在创建节点流基础上创建多字节输出流对象fos,通过写操作将多个字节数据写入创建的文件之中。DataInputStream多字节输入流同理使用,只不过是采用read操作。
3) 字符输入输出流 InputStreamReader OutputStreamWriter
File f=new File("C:\\Users\\Administrator\\Desktop\\filetest\\1.txt"); FileInputStream fis=new FileInputStream(f); InputStreamReader isr=new InputStreamReader(fis); char st=(char)isr.read(); System.out.println(st);
字符输入流对象的创建前提条件是创建文件输入流。实现读取创建文件的字符数据并循环输出。字符输出流使用流程与字符输入流类同。
4) 带输出缓冲的输入输出流 BufferedReader、BufferedWriter
FileInputStream fis=new FileInputStream(f); InputStreamReader isr=new InputStreamReader(fis); BufferedReader br=new BufferedReader(isr); System.out.println(br.readLine()); System.out.println(br.readLine()); fis.close();
创建一个输入流对象fis,并且以f作为参数创建一个字符输入流对象isr,再以fis作为参数创建一个带缓冲的输入流对象,利用此对象读取一行数据。
5) 以输出输入流对象参数对方法进行设计
public void read1(BufferedReader br) { try { System.out.println(br.readLine()); } catch (Exception e) { }public void write1(String str, BufferedWriter bw) { if (str.length() > 5) { try { bw.write(str); bw.newLine(); bw.flush(); } catch (Exception e) { } } else if ((str.length()) < 5) { try { bw.write("输入有误!"); bw.newLine(); bw.flush(); } catch (Exception e) { } }
java在使用流时,都会有一个缓冲区,按一种它认为比较高效的方法来发数据:把要发的数据先放到缓冲区,缓冲区放满以后再一次性发过去,而不是分开一次一次地发。而flush()表示强制将缓冲区中的数据发送出去,不必等到缓冲区满。下面给出主main的测试代码:
FileInputStream fis = new FileInputStream(f);OutputStreamWriter osw = new OutputStreamWriter(fos);InputStreamReader isr = new InputStreamReader(fis);BufferedWriter bw = new BufferedWriter(osw);BufferedReader br = new BufferedReader(isr);f2.write1("欢迎你来到北京", bw);f2.write1("你说是吗", bw);f2.write1("我觉得你说得有点道理", bw);f2.write1("我也是这么想的啊", bw);f2.read1(br);f2.read1(br);f2.read1(br);f2.read1(br);br.close();bw.close();
更多的文件IO操作还是需要多实践,才能有更深的理解。
1 0
- java输入与输出(I/O)(二):常见输入输出流小结
- java系统学习(十一) --------输入与输出(I/O)
- java 输入/输出流(I/O流)
- java输入输出流(I/O)总结
- Java输入输出流(I/O)
- java输入输出流(I/O)总结
- Java输入输出(I/O)流
- java中输入与输出(I/O)和流的概念:
- I/O(输入/输出)
- java I/O流,输入流,输出流,输入输出流,InputStream,FileInputStream,文件流,byte,url
- java中I/O流,输入与输出
- I/O 输入与输出(1) -- File类
- I/O 输入与输出(2) -- RandomAccessFile类
- 02_输入与输出I/O(基础篇)
- Java I/O(输入/输出)
- java输入与输出(I/O)(一):FileInputStream、FileOutputStream
- java输入与输出(I/O)(三):随机访问
- Java I/O(输入输出)操作
- java 已知一个Date(),获取前一天和后一天
- 仿微信聊天界面滚动动画停止效果
- mysql进阶(二十四)防御SQL注入的方法总结
- malloc、calloc、realloc以及new的区别与联系
- DIV布局之道四:clear:both清除DIV两侧浮动详解
- java输入与输出(I/O)(二):常见输入输出流小结
- Android 获取视频(本地和网络)缩略图的解决方案
- Android 开源框架ViewPageIndicator的使用
- css清除浮动float的三种方法总结
- vector subscript out of range
- ViewPagerIndication指针的使用
- 进程间(Activity)通信
- 对埃隆-马斯克的认识
- sqlite3原生数据库简单使用