本站不再更新,欢迎光临 java开发技术网
随笔-230  评论-230  文章-8  trackbacks-0

JAVA 中定义了两种输入输出流:字符流、字节流。字节流由两个顶层的操象类, InputStream OutputStream 类构成,每个操象类,都有其具体子类。下表是一些常用的字节流类。

 

BufferedInputStream

缓冲输入流

BufferedOutputStream

缓冲输出流

ByteArrayInputStream

从字节数组读取的输入流

ByteArrayOutputStream

从字节数组写入的输出流

DataInputStream

包含读取 JAVA 标准数据类型方法的输入流

DataOutputStream

包含输入 JAVA 标准数据类型方法的输出流

FileInputStream

读取文件的输入流

FileOutputStream

写文件的输出流

FilterInputStream

实现 InputStream

FilterOutputStream

实现 OutputStream

InputStream

描述输入流的操象类

OutputStream

描述输出流的操象类

PipedInputStream

输入管道

PipedOutputStream

输出管道

PrintStream

包含 print() println() 的输出流

PushbackInputStream

支持向输入流返回一个字节的单字节的 ”unget” 的输入流

RandomAccessFile

支持随机文件的输入输出

SequenceInputStream

两上或两个以上顺序读取的输入流

 

 

 

字符类由两个类层次结构定义,顶层有两个操象类, Reader Writer 。这些类处理统一编码的字符流,包含如下具体子类

 

BufferedReader

缓冲输入字符流

BufferedWriter

缓冲输出字符流

CharArrayReader

从字符数组中读取数据的输入流

CharArrayWriter

向字符数组写数据的输出流

FileReader

读取文件的输入流

FileWriter

写文件的输出流

FilterReader

过虑读

FilterWriter

过虑写

InputStreamReader

把字节转换成字符的输入流

OutputStreamWriter

把字符转换成字节的输出流

LineNumberReader

计数行数的输入流

PipedReader

输入管道

PipedWriter

输出管道

PushbackReader

允许字符返回到输入流的输入类

Reader

描述字符输入流的操象类

StringReader

读取字符串的输入流

StringWriter

写字符串的输出流

Writer

描述字符流输出的操象类

 

预定义流

所有的 JAVA 程序会自动导入 java.lang.* 包。该包定义了一个 System 的类,该类封装了运行时环境的多方面,能获得与当前系统有关的不同属性。其中包括三个自定义的流变量 ,in,out err System.out 是标准的输出流, System.in 是标准的输入流。 System.err 是标准的错误流,默认是控制台。显然这些流可以重定向任何兼容的输入、输出设备。

 

读取控制台的输入

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

 

package com.jdk.io;

 

import java.io.*;

 

public class Demo1 {

 

       public static void main(String[] args) throws Exception{

              char c;

              BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

              System.out.println(" 输入 Q q 退出 ");

              do{

                     c=(char)br.read();

                     System.out.println(c);

              }while(c!='q');

       }

 

}

 

这是一个简单的例子,演示了从控制中输入字符的例子,还有 read() 方法的使用。 下面的例子演示了 BufferedReader 类的 readline() 方法使用

package com.jdk.io;

 

import java.io.*;

 

public class Demo1 {

 

       public static void main(String[] args) throws Exception{

              String c;

              BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

              System.out.println(" 输入 Q q 退出 ");

              do{

                     c=br.readLine();

                     System.out.println(c);

              }while(!"stop".equals(c));

       }

 

}

 

向控制台输出

向控制台输出通常由 system.out.println() 来完成,它是由 printStream System.out 引用的对象类型)来定义的。心管 System.out 是一个字节流的输出,用它来作简单程序的输出是可行的, PrintStream 是从 OutputStream 派生出来的,它实了 writer 方法,用来向控制台输出一个字符 (char) 。一般不常用 writer ()向控制台输出,而用 print() println()

 

 

PrintWriter

Printwriter 流是基于字符串的,它支持 Object print println ,对于不同的类型,它会自动调用 toString() 转换成字符串来输出。如:

 

package com.jdk.io;

 

import java.io.*;

 

public class Demo2 {

 

       /**

        * @param args

        */

       public static void main(String[] args) {

              PrintWriter pw=new PrintWriter(System.out,true);

              pw.println("this a String");

              pw.println(new Integer("333"));

       }

 

}

 

 

文件的读写

java 允许字符形式的使用字节文件流。两个最常用的类就是 FileInputSteam FileOutputStream 这两个类,为打开文件,你只需要创建两个类中其中一个的对象即可。下面是一个例子:

package com.jdk.io;

 

import java.io.*;

 

public class ShowFile {

 

 

       public static void main(String[] args) throws Exception{

              int i;

              FileInputStream fis=null;

              try{

                     fis=new FileInputStream(args[0]);

              }catch(Exception e){

                     e.printStackTrace();

              }

              do{

                     i=fis.read();

                     if(i!=-1){System.out.println((char)i);}

              }while(i!=-1);

       }

 

}

FileInputStream 实现从文件输入内容。

 

 

 

posted on 2006-10-07 20:52 有猫相伴的日子 阅读(4301) 评论(1)  编辑  收藏 所属分类: jdk

评论:
# re: java输入与输出 2012-02-13 14:24 | 问问
鹅鹅鹅  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
本站不再更新,欢迎光临 java开发技术网