您的位置:首页 > 编程语言 > Java开发

java基础之IO操作

2013-03-11 10:33 711 查看
在java中,把能够读取和写入字节的对象称为字节输入输出流;把能读取和写入字符的对象称为字符输入输出流。前者用来处理字节,后者用来处理字符。

       因此java的IO体系分为InputStream/OutputStream和Reader/Writer两类。java.io是大多数io对象的包。Reader/Writer类下的子类,与InputStream/OutputStream类的子类相似,区别仅在于在读写文本时能自动转换内码。

java标准输入输出流:Stdin,Stdout,Stderr。

(1)Stdin :System.in作为InputStream类的一个子类实现stdin。可以使用成员函数read()和skip();

 (2)Stdout:System.out作为PrintStream的一个实现来实现stdout,可以使用成员函数print()和pintln();

 (3)Stderr:System.err同stdout一样实现stderr,可以使用print(),println();

import java.io.*;

public class Stdin_out_Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] ch=new char[10];
int b;
int i=0;
System.out.print("Input Chars:\n");
try {
while((b=System.in.read())!=-1)  //读到流结束返回-1
{
i++;
if(i<6)
System.out.print((char)b);
else
System.err.print((char)b);
}

} catch (IOException e) {
e.printStackTrace();
// TODO: handle exception
}
System.out.print("\n"+"Total :" + i);
}
}


以字节为导向的Stream:InputStream,OutputStream



OutputStream:与InputStream对应;

FileOutStream:与FileInputStream对应;

ByteArrayOutputStream:与ByteArrayInputStream对应;

DataOutputStream:与DataInputStream对应;

BufferedOutputStream:与BufferedInputStream对应;

字符导向IO对象:

Reader的子类:BufferedReader,CharArrayReader,InputStreamReader,StringReader,FileReader

Writer的子类:BufferedWriter,CharArrayWriter,OutputStreamWriter,StringWriter,FileWriter

输入流常用函数:int available(),int read()

输出流常用函数:write(),flush(),close()

个人总结:

(1)File与FileInputStream:FileInputStream关注流的内容,File关注的是文件的存在和性质

(2)字符流处理FileReader和InputStreamReader:前者采用系统默认字符集打开文件,后者构造器中可以设置打开方式

(3)BufferedReader与BufferedInputStream:都是为流创建缓冲区,提高读写速度。前者用于Reader的子类,后者用于InputStream的子类。

(4)FileInputStream与DataInputStream的区别:后者提供了更加丰富的读取文件的方法,readInt(),readDouble()等

较好的使用规范:

1) File file = new File ("hello.txt"); 
FileInputStream in=new FileInputStream(file); 
2) File file = new File ("hello.txt"); 
FileInputStream in=new FileInputStream(file); 
InputStreamReader inReader=new InputStreamReader(in); 
BufferedReader bufReader=new BufferedReader(inReader); 
3) File file = new File ("hello.txt"); 
FileReader fileReader=new FileReader(file); 
BufferedReader bufReader=new BufferedReader(fileReader);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础 javaIO