Java输入输出流

输入流、输出流

输入流:从其他地方如:键盘,文件等输入到程序中;
程序从输入流中读取信息。
输出流:从程序输出到 如文件,显示器等的数据流。
程序向其他位置写信息。

按照最小的数据单位可分为
字节流:其父类为InputStream,OutputStream;
字符流:其父类为Reader,Writer。
Java中一个字符为两个字节。对与非字符数据,必须用字节流。

节点流
直接操作特定的目标。为低级流。
处理流
对已有的流进行处理,相当于电路中的变压器,水龙头的净水器。为程序提供更加强大的读写功能,为过滤流,高级流。

FIS,FOS

FileInputSream and FileOutputStram.文件输入流和文件输出流。
FIS(Read)

int read(); 
//读取byte填充到int(32位)的第八位,没有时返回-1;
int read(byte[] b);
 //从输入流中最多读取b.length()个字节到一个字节数组中,返回读取到字节个数;
int read(byte[] b, int off, int len);
//从输入流中最多读取len个字节到一个字节数组,off为偏移值。

FOS(Write)
写入数据的输出流;

void write(int b); 
//将指定字节的数据写入此文件输出流;
void write(byte[] b); 
//将长度为b.length()个字节数据从指定字节数组写入到此文件输出流;
void write(byte[] b, int off, int len);
//将指定字节数组从偏移量开始的len个字节写入到此文件的输出流。

BIS and BOS

BufferedInputStream and BufferedOutputStream为带有缓冲的输入输出流。
每次调用时,都会经过缓存区,即读取或者写入时,先操作缓冲区,从而提高了效率。

DIS and DOS

DataInputstream and DataOutputStream 是对流功能的扩展,提供基本类型的输入,输出方法。
DIS常用方法:

int readInt();
//读取四个字节并返回一个int值;
double readDouble();
//读取八个字节,并返回一个double值。

DOS常用方法:

void writeInt(int);
//将一个int值写入输出流;
void writeDouble(double);
//将一个double值写入输出流;
void writeUTF();.....略。

字符流

1. ISR and OSW
一次处理一个字符。

InputStreamReader(ISR):
读取,完成byte流解析为char流,按照编码解析;
OutputStreamWriter(OSW):
写入,提供char流到byte流,按照编码处理。

2. BR and BW
字符流过滤器,极大的方便的文本的读写操作。

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new
FileOutputStream));
String str = null;
while((str = br.read())!=null){//不识别换行
    bw.write(str);
    bw.newLine();//换行
    bw.flush;
    }

访问控制台

BufferedReader br = new BUfferedReader(new InoutStreamReader(System.in));
while(ture){
    String str = br.readLine();//从控制台一次读一行
    System.out.println(str);
    if("end".equals(str))break;
}

3. FR and FW

FileReader fr = new FileReader(filename);
FileWriter fw = new FileWriter("d:\\fw.txt");
int c;
while((c = fr.read())!= -1){
    fw.write(c);
    fw.flush;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值