浅谈java输入输出流
本文转自:http://cyp-034.blog.163.com/blog/static/2823190520074691849380/
stream
代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Inputstream和
Out stream)都包括两种类型:
(1)字节流
表示以字节为单位从stream中读取或往stream中写入信息,即io包中的inputstream类和outputstream类的派生类。通常用
来读取二进制数据,如图象和声音。
(2)字符流
以Unicode字符为导向的stream,表示以Unicode字符为单位从stream
中读取或往stream中写入信息。
区别:
Reader和Writer要解决的,最主要的问题就是国际化。原先的I/O类库只支持8位
的字节流,因此不可能很好地处理16位的Unicode字符流。Unicode是国际化的字符集(更何况Java内置的char就是16位的
Unicode字符),这样加了Reader和Writer之后,所有的I/O就都支持Unicode了。此外新类库的性能也比旧的好。
但是,Read和Write并不是取代InputStream和OutputStream,
有时,你还必须同时使用"基于byte的类"和"基于字符的类"。为此,它还提供了两个"适配器(adapter)"类。
InputStreamReader负责将InputStream转化成Reader,而OutputStreamWriter则将
OutputStream转化成Writer。
一.流的层次结构
定义:
(1)
java将读取数据对象成为输入流,能向其写入的对象叫输出流。结构图如下:输入流:
输出流
二.InputStream类
inputstream类和outputstream类都为抽象类,不能创建对象,可以通过
子类来实例化。
InputStream是输入字节数据用的类,所以InputStream类提供了3种重载
的read方法.Inputstream类中的常用方法:
(1) public abstract int read(
):读取一个byte的数据,返回值是高位补0的int类型值。
(2) public int read(byte b[
]):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的
(3) public int read(byte b[ ], int
off, int len):从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组中。
(4) public int available(
)
相关文档:
import java.util.Arrays;
public class Sort {
//冒泡排序(从头到尾排)
public static void bubbleSort(int[] arrays)
{
//第一次循环从第一个元素开始,到倒数第二个元素
for(int i=0;i<arrays.length-1;i++)
{
for(int j=1 ......
[转帖]Java学习之路:不走弯路,就是捷径
2007-04-11 16:10
在ChinaITLAB导师制辅导中,笔者发现问得最多的问题莫过于"如何学习编程?Java该如何学习?"。类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法。到时候再有人问起类似的问题,我可以告诉他(她),请你去看看《Java学习之路》。拜读过台湾蔡学镛先 ......
整个类文件注释
示例如下
:
/*
* @(#)Object.java
1.61 03/01/23
*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package java.lang;
& ......
public class Parent
{
//1
static int a = 1;
//2
static
{
a = 10;
System.out.println("parent static c ......