Java IO 节点流与处理流类型


处理流类型:


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流:














本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高级浏览器-SRWare Iron 29.0.1600.0 版本发布

SRWare Iron是德国一安全公司srware改造的Chrome&#xff08;铬&#xff09;命名为铁&#xff08;iron&#xff09;的浏览器。于2008年9月18日首次发布。 据官方介绍&#xff0c;Iron浏览器砍掉了Chromium原程序中的很多有碍“隐私”问题的代码。 “iron中去除的功能包括&#…

shell中的${},##和%%的使用

假设我们定义了一个变量为&#xff1a; file/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值&#xff1a; ${file#*/}&#xff1a;删掉第一个 / 及其左边的字符串&#xff1a;dir1/dir2/dir3/my.file.txt ${file##*/}&#xff1a;删掉最后一个 / 及其左边的字…

Java 线程多线程编程1---基础

1、线程的基本概念例子&#xff1a;分析&#xff1a;2、线程的创建和启动第一种线程的创建&#xff1a;定义一个线程类来实现Runner接口 例子&#xff1a; package com.zhj.www; import java.lang.Thread; public class TestThread1 {public static void main(String[] args) {…

移动互联网下一步:“深度学习”配合大数据

随着电子商务不断深入&#xff0c;百度、腾讯、阿里巴巴的移动互联网战略的可比性越来月低&#xff0c;如今百度的移动互联网的战略也面临挑战&#xff0c;最大的因素在于数据的来源。 对于互联网的公司最近的动态是什么&#xff1f;这个不是很难的&#xff0c;主要看一下公司的…

windows挂载linux网络文件系统NFS

ubuntu上安装配置nfs服务 #apt-get install nfs-kernel-server #mkdir /home/nfs #vim /etc/exports 在文档的最后一行加入/home/nfs *(rw,sync,no_root_squash,no_subtree_check)&#xff0c;保存退出。 #/etc/init.d/rpcbind restart 重启rpcbind #/etc/init.d/nfs-kern…

SQL的连接分为三种:内连接、外连接、交叉连接。

先给出两张表&#xff1a;一、内连接&#xff1a;内连接&#xff08;INNER JOIN&#xff09;&#xff1a;有两种&#xff0c;显式的和隐式的&#xff0c;返回连接表中符合连接条件和查询条件的数据行。&#xff08;所谓的链接表就是数据库在做查询形成的中间表&#xff09;。1、…

如何在使用摩托罗拉上的RSS阅读器应用进行一次订阅

订阅一个CSDN的RSS为例。 1、打开RSS阅读器。 2、设置->新增订阅->手动新增 订阅URL:输入http://articles.csdn.net/api/rss.php?tid1000 &#xff08;可以先在PC上打开下该网页&#xff0c;发现他是一个xml网页。&#xff09; 订阅名称&#xff1a;自己起一个名字&…

RTP与RTCP协议介绍

本文转自&#xff1a;http://blog.51cto.com/zhangjunhd/25481 1&#xff0e;流媒体( Streaming Media) 1.1流媒体概念 流媒体技术是网络技术和多媒体技术发展到一定阶段的产物。术语流媒体既可以指在网上传输连续时基媒体的流式技术,也可以指使用流式技术的连续时基媒体本身…

JSP学习

一、JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages&#xff0c;是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet&#xff0c;主要用于实现Java web应用程序的用户界面部分。网页开发…

Java给定一个字符串数组,判断每个字符出现次数

题目要求&#xff1a;给定一个字符串&#xff0c;判断每个字符出现多少次&#xff1f; 解决思路&#xff1a;利用Map的特性&#xff1a;即Map集合中如果两个key&#xff08;键&#xff09;值是一样相同的&#xff0c;那么&#xff0c;后放&#xff08;put&#xff09;入的值会将…

Java-n个人报数

题目&#xff1a; 有n个人围成一圈&#xff0c;顺序排号。从第一个人开始报数&#xff08;从1到3报数&#xff09;&#xff0c;凡报到3的人退出圈子&#xff0c;问最后留下的是原来第几号的哪一位&#xff1f; 大概思路&#xff1a;假设有3个人&#xff0c;它们围成一圈&#x…

100个直接可以拿来用的JavaScript实用功能代码片段

http://www.cnblogs.com/wxydigua/p/3314274.html转载于:https://www.cnblogs.com/kevinge/p/3316315.html

[转]JS Cookie 中文乱码

首先是一个解析cookie的函数&#xff1a; <script type"text/javascript"> function getCookie(name) { var cookies document.cookie.split(";"); for(var i0;i<cookies.length;i) { var cookie cookies[i]; var cookieStr cookie.…

Java线程中关于Synchronized的用法

synchronized是Java中的关键字&#xff0c;是一种同步锁。它修饰的对象有以下几种&#xff1a; 1. 修饰一个代码块&#xff0c;被修饰的代码块称为同步语句块&#xff0c;其作用的范围是大括号{}括起来的代码&#xff0c;作用的对象是调用这个代码块的对象&#xff1b; 2. 修饰…

cmd命令行设置环境变量

http://blog.sciencenet.cn/blog-51026-566742.html 1、查看当前所有可用的环境变量&#xff1a;输入 set 即可查看。 2、查看某个环境变量&#xff1a;输入 “set 变量名”即可&#xff0c;比如想查看path变量的值&#xff0c;即输入 set path。 3、修改环境变量 &#xff1a;…

Java线程之多线程与多进程(1)——以操作系统的角度述说线程与进程

任务调度 线程是什么&#xff1f;要理解这个概念&#xff0c;须要先了解一下操作系统的一些相关概念。大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式&#xff0c;也就是说一个任务执行一小段时间后强制暂停去执行下一个任务&#xff0c;每个任务…

用 PS 调整服务器时间

用 PS 调整服务器时间 Powershell 有一个命令用来调整计算机的时间&#xff0c; Set-Date -Adjust&#xff0c;但是&#xff0c;只能调整本地时间&#xff0c;不能调整远程的计算机时间。 function AdjustDCTime ( $Server, $addTime ){ $Svr Get-WmiObject Win32_Operatin…

Java线程之多线程与多进程(2)——线程优先级与线程安全

线程优先级 现在主流操作系统(如Windows、Linux、Mac OS X)的任务调度除了具有前面提到的时间片轮转的特点外&#xff0c;还有优先级调度(Priority Schedule)的特点。优先级调度决定了线程按照什么顺序轮流执行&#xff0c;在具有优先级调度的系统中&#xff0c;线程拥有各自的…

mahout贝叶斯算法开发思路(拓展篇)1

首先说明一点&#xff0c;此篇blog解决的问题是就下面的数据如何应用mahout中的贝叶斯算法&#xff1f;&#xff08;这个问题是在上篇&#xff08;。。。完结篇&#xff09;blog最后留的问题&#xff0c;如果想直接使用该工具&#xff0c;可以在mahout贝叶斯算法拓展下载&#…

Java线程之多线程与多进程(3)——Java中的多线程

单线程 任何程序至少有一个线程&#xff0c;即使你没有主动地创建线程&#xff0c;程序从一开始执行就有一个默认的线程&#xff0c;被称为主线程&#xff0c;只有一个线程的程序称为单线程程序。如下面这一简单的代码&#xff0c;没有显示地创建一个线程&#xff0c;程序从mai…