处理流类型:

1、处理流之首先缓冲流:

解释:

例子:TestBufferStream1.java

package com.zhj.www;import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;public class TestBufferStream1 {public static void main(String[] args) {try {FileInputStream fileInputStream = new FileInputStream("E:\\JavaCode\\eclipse-workspace\\TestFileWriter\\src\\com\\zhj\\www\\Hello.dat");//从某个文件开始读入BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);int c = 0;System.out.println(fileInputStream.read());System.out.println(fileInputStream.read());fileInputStream.mark(100);for(int i = 0;i< 10 && (c = bufferedInputStream.read()) != -1;i++) {System.out.println(c + " ");}System.out.println();fileInputStream.reset();for(int i = 0;i< 10 && (c = bufferedInputStream.read()) != -1;i++) {System.out.println(c + " ");}fileInputStream.close();} catch (IOException e) {e.getStackTrace();}}
}

运行结果:
    ?

什么是流,就是管道,在一个文件中插了一条管道,可以读入,也可以写入。节点流也可以这么理解。

处理流呢?在节点流的基础上,外面又包了一层管道。

例子:TestBufferStream2.java

package com.zhj.www;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class TestBufferStream2 {public static void main(String[] args) {try {BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("E:\\JavaCode\\eclipse-workspace\\TestBufferStream2\\src\\com\\zhj\\www\\HelloWorld.txt"));BufferedReader bufferedReader = new BufferedReader(new FileReader("E:\\JavaCode\\eclipse-workspace\\TestBufferStream2\\src\\com\\zhj\\www\\HelloWorld.txt"));String string = null;for(int i = 1;i<=100;i++) {string= String.valueOf(Math.random());bufferedWriter.write(string);bufferedWriter.newLine();}bufferedWriter.flush();while ((string = bufferedReader.readLine()) != null) {System.out.println(string);}bufferedWriter.close();bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}
}

2、处理流之转换流:

举个例子:(TestTransForm1.java)

package com.zhj.www;
import java.io.*;
public class TestTransForm1 {public static void main(String[] args) {try {//转换流:OuputStream转化为Writer;OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("E:\\JavaCode\\eclipse-workspace\\TestTransForm1\\src\\com\\zhj\\www\\hello.txt"));outputStreamWriter.write("Hello_World! ");System.out.println(outputStreamWriter.getEncoding());//输出编码方式outputStreamWriter.close();outputStreamWriter =new OutputStreamWriter(new FileOutputStream("E:\\JavaCode\\eclipse-workspace\\TestTransForm1\\src\\com\\zhj\\www\\hello.txt", true),"ISO8859_1");outputStreamWriter.write("Heihei!");System.out.println(outputStreamWriter.getEncoding());outputStreamWriter.close();} catch (Exception e) {e.getStackTrace();}}
}

分析这个例子:

再举个例子:(TestTransForm2.java)

package com.zhj.www;import java.io.*;public class TestTransForm2 {public static void main(String[] args) {InputStreamReader inputStreamReader = new InputStreamReader(System.in);BufferedReader bufferedInputStream = new BufferedReader(inputStreamReader);String string= null;try {string =bufferedInputStream.readLine();while (string!= null) {if (string.equalsIgnoreCase("exit")) {break;}System.out.println(string.toUpperCase());string = bufferedInputStream.readLine();}bufferedInputStream.close();} catch (IOException e) {e.getStackTrace();}}}

分析这个例子:

3、处理流之数据流:

直接上例子:(TestDataStream.java)

package com.zhj.www;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class TestDataStream {public static void main(String[] args) {ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);try {dataOutputStream.writeDouble(Math.random());dataOutputStream.writeBoolean(true);ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());System.out.println(byteArrayInputStream.available());//9DataInputStream dataInputStream = new DataInputStream(byteArrayInputStream);System.out.println(dataInputStream.readDouble());System.out.println(dataInputStream.readBoolean());dataOutputStream.close();dataInputStream.close();} catch (IOException e) {e.getStackTrace();}}
}
//Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码

简单流程分析:

4、处理流之Print流:

举个例子:TestPrintStream1.java

分析:

代码意思:就是将从键盘输入的数据,保存到log.dat;然后再从log.data输出到命令行。

再举个例子:TestPrintStream2.java

简单分析:

再在举个例子:TestPrintStream3.java

简单分析:

代码的意思就是:把从键盘输入的内容保存到日志文件中,只要从键盘输入的不为null,就继续把从键盘输入的信息保存到指定的日志文件中,但当输入的等于exit,就停止往日志中写。

5、处理流之Object流:

Java IO 节点流与处理流类型相关推荐

  1. 【Java基础】吃透Java IO:字节流、字符流、缓冲流

    文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...

  2. Java IO 3-字节流与字符流的区别

    java以流的形式操纵IO,又将流分为两种:字节流与字符流,对JavaIO流操作不清楚的可以参考 Java IO 2-字节流与字符流 那字节流与字符流之间又有什么区别呢 区别 字节流用于操作文件数据, ...

  3. java byte char io流_吃透Java IO:字节流、字符流、缓冲流

    前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...

  4. 吃透Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的. 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握得很好,可以立即关闭文章.反之,你可以在后面得文章中寻找答案. ...

  5. java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...

  6. fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流

    前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...

  7. Java基础(二十七)Java IO(4)字符流(Character Stream)

    字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出 ...

  8. Java IO(五)——字符流进阶及BufferedWriter、BufferedReader

    一.字符流和字节流的区别 拿一下上一篇文章的例子: 复制代码 复制代码 1 package com.demo.io; 2 3 import java.io.File; 4 import java.io ...

  9. java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝

    接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...

最新文章

  1. Chapter12:动态内存
  2. 转载几个和职业建议相关的文章
  3. 解决svn的working copy locked并且cleanup恢复不能的情况
  4. Linux Java Web 服务器搭建之tomcat安装
  5. C#操作mysql中临时表不自动删除
  6. Electron中通过net的API发出HTTP请求
  7. oracle查询表的意思,Oracle表的查询(一)
  8. 《伟大的小细节:互联网产品设计中的微创新思维》——3.2 时间/日期因素
  9. 浏览器怎么置顶_Windows 10 窗口置顶 bug 解决方案汇总
  10. Same Tree - LeetCode
  11. 第19节贝叶斯原理及实例
  12. 重建大师5.0成为首款支持国产麒麟操作系统的自动实景三维建模软件
  13. 概率图模型(05): 揭示局部概率模型, 稀疏化网络表示(Structured-CPDs)
  14. 和Keyle一起学ShaderForge – Create Base Shader
  15. C站能力认证(C4前端基础认证) //任务一:构建可访问性HTML实例
  16. C#使用Oxyplot绘制监控界面
  17. 通过IMAP方式迁移U-Mail邮件到Exchange 2013之Exchange 2007 升级到Exchange 2013!
  18. v-show会预先渲染_预先进行Big Design的利弊-我该怎么做
  19. 【2018十大VR眼镜排行榜】VR眼镜有哪些品牌。哪个牌子的VR眼镜比较好,性价比高,适合玩VR游戏的
  20. 织梦免费网站模板手机端无法更新的原因及解决

热门文章

  1. android 6关闭防火墙,安卓手机如何关闭防火墙
  2. java 跳转action_JS 跳转到指定Action | 学步园
  3. 最近的一些校招试题摘录
  4. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波18 - 低通、高通、带阻和带通滤波器、组合使用空间增强方法
  5. seo 伪原创_如何判断外包的seo文章是否是抄袭或伪原创?
  6. linux 使用timedatectl 修改时区和时间
  7. spring boot jar包替换报错之Unable to open nested entry 'BOOT-INF/lib/cache-api-0.4.jar'.
  8. 笔记:Java虚拟机运行时数据区
  9. 快速构建ceph可视化监控系统
  10. Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)