- 浏览: 205890 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
Kesin97:
不错 很有用。选择性锁也不太影响性能。
sqlserver的updlock锁 (转) -
fox-idea:
学习
用PC作数据库服务器的容灾问题 -
xwei78:
话说这个下载地址不太好找啊,我去oracle网站转了好一会才找 ...
oracle10g官方客户端配置
一、流的概念
流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。
一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。
流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流。用户可以从输入流中读取信息,但不能写它。相反,对输出流,只能往输入流写,而不能读它。
实际上,流的源端和目的端可简单地看成是字节的生产者和消费者,对输入流,可不必关心它的源端是什么,只要简单地从流中读数据,而对输出流,也可不知道它的目的端,只是简单地往流中写数据。形象的比喻——水流 ,文件======程序 ,文件和程序之间连接一个管道,水流就在之间形成了,自然也就出现了方向:可以流进,也可以流出.便于理解,这么定义流: 流就是一个管道里面有流水,这个管道连接了文件和程序。
二、流的分类
-
java.io包中的类对应两类流,一类流直接从指定的位置(如磁盘文件或内存区域)读或写,这类流称为结点流(node stream),其它的流则称为过滤器(filters)。过滤器输入流往往是以其它输入流作为它的输入源,经过过滤或处理后再以新的输入流的形式提供给用户,过滤器输出流的原理也类似。
-
Java的常用输入、输出流
java.io包中的stream类根据它们操作对象的类型是字符还是字节可分为两大类: 字符流和字节流。
Java的字节流InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。
Java的字符流Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。结合开始所说的输入/输出流 ,出现了个一小框架。字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer
JAVA字节流
- FileInputStream和FileOutputStream
这两个类属于结点流,第一个类的源端和第二个类的目的端都是磁盘文件,它们的构造方法允许通过文件的路径名来构造相应的流。如:
FileInputStream infile = new FileInputStream("myfile.dat");
FileOutputStream outfile = new FileOutputStream("results.dat");
要注意的是,构造FileInputStream, 对应的文件必须存在并且是可读的,而构造FileOutputStream时,如输出文件已存在,则必须是可覆盖的。
- BufferedInputStream和BufferedOutputStream
它们是过滤器流,其作用是提高输入输出的效率。 -
DataInputStream和DataOutputStream
这两个类创建的对象分别被称为数据输入流和数据输出流。这是很有用的两个流,它们允许程序按与机器无关的风格读写Java数据。所以比较适合于网络上的数据传输。这两个流也是过滤器流,常以其它流如InputStream或OutputStream作为它们的输入或输出。
Java的字符流
字符流主要是用来处理字符的。Java采用16位的Unicode来表示字符串和字符,对应的字符流按输入和输出分别称为readers和writers。- InputStreamReader和OutputStreamWriter
在构造这两个类对应的流时,它们会自动进行转换,将平台缺省的编码集编码的字节转换为Unicode字符。对英语环境,其缺省的编码集一般为ISO8859-1。 - BufferedReader和BufferedWriter
这两个类对应的流使用了缓冲,能大大提高输入输出的效率。这两个也是过滤器流,常用来对InputStreamReader和OutputStreamWriter进行处理。如:
import java.io.*;
public class Echo {
public static void main(String[] args) {
BufferedReader in =
new BufferedReader(
new InputStreamReader(System.in));
String s;
try {
while((s = in.readLine()).length() != 0)
System.out.println(s);
// An empty line terminates the program
} catch(IOException e) {
e.printStackTrace();
}
}
}
该程序接受键盘输入并回显。对BufferedReader类,该类的readLine()方法能一次从流中读入一行,但对于BufferedWriter类,就没有一次写一行的方法,所以若要向流中一次写一行,可用PrintWriter类将原来的流改造成新的打印流,PrintWriter类有一个方法println(),能一次输出一行。如:
............
PrintWriter out = new PrintWriter(new BufferedWriter(
new FileWriter("D:\javacode\test.txt")));
out.println("Hello World!");
out.close();
............
例子:
1,与控制台相关。的读入/写出。 实现了字符串的复制。
import java.io.*; public class TextRead{ public static void main(String[] args){ BufferedReader bf = null;/*BufferedReader相当于一个大桶,其实就是内存,这里实现了大量大量的读写 ,而不是读一个字节或字符就直接写如硬盘,加强了对硬盘的保护。*/ try{ while(true){ // while(true){}循环保证程序不会结束 bf = new BufferedReader(new InputStreamReader(System.in)); /*System.in 为标准输入,System.out为标准输出*/ /*InputStreamReader用语将字节流到字符流的转化,这也就是处理流了 *在这里相当与2个管道接在System.in与程序之间。 *readLine()方法功能比较好用,也就通过处理流来实现更好功能。 **/ String line = bf.readLine(); System.out.println(line); } }catch(Exception e){ e.printStackTrace(); }finally{ //一定要关闭流,用完后。最好放在 filally 里面。 try{ if(bf!=null){ bf.close(); } }catch(Exception e){ e.printStackTrace(); } } } }
2,与文件 相关的 读写。 实现了文件的复制。
import java.io.*; public class TextRead{ public static void main(String[] args){ File fin,fout; BufferedReader bf = null; PrintWriter pw = null; try{ fin = new File("zzc.txt"); //注意文件与程序都要在同一个文件夹下。zzc.txt为要被复制的文件。 fout = new File("copyzzc.txt"); //如果没有会自动创建。 bf = new BufferedReader(new FileReader(fin)); pw = new PrintWriter(fout); //PrintWriter为打印流,也可以使用BufferedWriter. String line = bf.readLine(); while(line!=null){ pw.println(line); line = bf.readLine(); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ //关闭 文件。 if(bf!=null){ bf.close(); bf = null; } if(pw!=null){ pw.close(); pw = null; } }catch(Exception e){ e.printStackTrace(); } } }
}
也是在一个百度好友上看到一篇关于流的文章写的更详细,把好多过时的不用的,哪写常用的都分类了,
还有好多类:
像RandomAccessFile类,序列化接口,都十分重要。
Java有一种特殊类型的IO数据流——DataOutputStream——它可以保证“无论数据来自何种机器,只要使用一个DataInputStream收取这些数据,就可用本机正确的格式保存它们.
以后在把示例加上,还有写比较好的方法。
其实感觉这已经是固定模式了,一提到从键盘读取数据 就会联想到:
new BufferedReader(new InputStreamReader(System.in))
现在水平达不到,还是记些固定格式比较好,以至于会用。
某个老师也说过,创新是建立在扎实的基础之上,越来越觉得基础重要了
- InputStreamReader和OutputStreamWriter
发表评论
-
Glassfish性能调优 转
2013-02-02 00:30 829GlassFish是目前主流的Java EE应用服务器之一, ... -
ant设置代理
2012-08-24 12:36 869在built.xml文件里添加如下配置 <tar ... -
java(Web)中相对路径,绝对路径问题总结 转
2012-08-03 16:10 1078前言: 前一段时间, ... -
JMS开发
2012-07-05 08:24 794在编写JMS客户端程序之 ... -
Nginx+Tomcat+Memcached集群Session共享 转
2012-03-05 18:45 1411环境: windows 7 + nginx-1.1. ... -
jsp中的session机制
2012-01-12 16:32 910摘要:虽然session机制在 ... -
Clustering经典范文学习
2011-11-27 15:27 707构造Cluster是架构师们实现Scalability与H ... -
类实例化
2011-07-08 08:40 647学习JAVA这门面向对象的语言,实质就是不断地创建类,并把类实 ... -
http客户端 转
2011-05-10 10:50 752import java.net.*; impo ... -
android sqlite使用--转ibm
2011-02-28 14:50 924SQLite 介绍 SQLite 一个非常流行的嵌入式数据库 ... -
java计算阶乘
2010-12-31 18:12 1533第一个用java计算阶乘的方法:这是利用简单的循环相乘制造的阶 ... -
使用Java NIO编写高性能的服务器 转
2010-10-20 10:48 652从JDK 1.4开始,Java的标准库中就包含了NIO,即所谓 ... -
java nio 转
2010-10-20 10:47 596首先了解下所谓的java ni ... -
java.util.concurrent 多线程框架实例 转
2010-10-19 21:32 584JDK5中的一个亮点就是将Doug Lea的并发库引入到Jav ... -
我的项目的结构和配置文件
2006-06-27 17:33 743学习java有段时间了,最近自己根据网上的资料 ... -
ibatis 使用动态表
2006-06-29 23:50 913自从ibatis 2.0.9以后,ibatis支持动态表 ... -
JAVA-学习-网络资源
2006-07-05 00:00 749SUN中国技术社区 ... -
Swing的Jtable类(转载)
2006-07-05 13:25 9061 t ... -
Java的文件与磁盘操作(转载)
2006-07-06 00:05 9691 如何获得某一个目录下的文件列表? 1 ... -
使用FileUpload组件实现文件上传(转载)
2006-07-06 00:15 724文件上传在web应用中非常普遍,要在 ...
相关推荐
Java中的IO流是Java核心库的重要组成部分,它用于在不同数据源之间传输数据。Java IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理8位的字节序列。它们又...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...
Java IO流详解
### Java IO流详解 #### 一、Input和Output Stream概览 在Java中,输入输出流(简称IO流)是用来处理文件读写的核心技术之一。它主要包括两类:以字节为导向的流和以字符为导向的流。 ##### 1.1 以字节为导向的流...
Java IO流总结 Java IO流是Java语言中最基本和最重要的输入/输出机制,负责将数据从外部世界输入到Java应用程序中或将数据从Java应用程序输出到外部世界。IO流可以分为两大类:字节流和字符流。 1. 节点流:离数据...
Java io流的总结
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
Java IO流是Java编程语言中处理输入和输出的重要机制,它允许程序与各种类型的输入源(如键盘、文件、网络连接)以及输出目标(如显示器、文件、网络)进行交互。在Java中,I/O流被设计为面向对象,使得处理数据变得...
Java IO流是Java平台中用于处理输入输出操作的核心部分,它允许程序与各种数据源(如文件、设备、网络)进行交互。IO流在Java中分为两大类:字节流和字符流,每种流又有输入流和输出流之分。字节流处理的是8位的字节...
Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...
这是一份关于android开发的相关资料,供初学者学习使用。
Java IO流和Socket是Java编程语言中用于处理输入输出和网络通信的重要概念。在这个示例中,我们将深入探讨如何利用Java IO流与Socket实现简单的文本传输。对于初学者来说,理解这两个概念及其交互是非常关键的。 ...
Java 中文件 IO 流 Java 中文件 IO 流是指 Java 语言中对文件的输入输出操作,通过定义文件流来实现文件的读写操作。文件流是指在程序中用于文件输入输出的对象, Java 中提供了多种文件流类型,包括 InputStream ...
Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...
Java IO流是Java编程语言中用于处理输入输出操作的核心组件,尤其在文件操作、设备交互以及数据传输方面扮演着重要角色。在Java中,IO流的概念首次被引入是为了方便数据在不同源和目的地之间流动,它将各种I/O操作...
在这个大总结中,我们将深入探讨Java IO流的基本概念、分类、常用类以及实践应用。 1. **基本概念** - **流(Stream)**:在Java中,流是一个抽象的概念,代表数据的有序序列。它可以是字节流或字符流,流向可以是...
这是别人总结的很有实用价值的javaIO流教程。
Java IO流是Java平台核心特性之一,它负责在程序与外部资源之间传输数据。这个概念在Java编程中至关重要,因为它提供了处理输入(读取)和输出(写入)的机制,无论是从键盘、文件、网络还是其他数据源。在本文中,...
Java IO流是Java平台中处理输入输出操作的核心组件,它允许程序与各种数据源(如文件、设备、网络连接)进行交互。IO流系统由多个类和接口组成,它们位于java.io包中,为开发者提供了读写数据的丰富功能。在Java中,...