文档介绍:第6章数据流的运用
北京大学计算机系
代亚非
第6章数据流的运用
输入输出方法
输入输出流的基类
File I/O
数据输入输出流
随机存取文件
文件的其它操作
java中的unicode
管道流
对象流
流的分类
小结
2
文件
程序
终端
文件
程序
网络端点
数据流
起点
终点
网络端点
文件,字符串
存储区
输入输出方法
什么是数据流?
数据流是指所有的数据通信通道
.*
出于安全的考虑,小应用不能实现文件I/O流
3
输入输出方法
System类管理标准输入输出流和错误流
:
把输出送到缺省的显示(通常是显示器)
从标准输入获取输入(通常是键盘)
把错误信息送到缺省的显示
每当main方法被执行时,就自动生成上述三个对象
4
输入输出方法
public class ReadHello
{ public static void main(String args[])
{ char inchar;
(“Enter a character:”);
try{ inChar=(char)();
(““+ inChar);
}catch(IOException e)
{ (“Error reading from user”);
}
}
}
5
stream\---
输入输出方法
import .*;
class IOTest
{ public statics void main(String args[])
{try { byte bArray[]=new byte[128];
(“Enter something:”);
(bArray);
(“You entered:”);
(bArray);
}catch(IOException ioe)
{ (()); }
}
}
6
输入输出方法
为什么输入的是字符,输出是乱码?
原因:(bArray)输出的是数组的地址而不是字符
改进:将字符数组变换成字符串
原来是:(bArray);
现在为:String s=new String(bArray,0);
(s);
7
输入输出流的基类
Java中每一种流的基本功能依赖于基本类InputStream和OutputStream
它们是抽象类,不能直接使用
属于InputStream类的方法有:
read():从流中读入数据
skip():跳过流中若干字节数
available():返回流中可用字节数
mark():在流中标记一个位置
reset():返回标记过得位置
markSupport():是否支持标记和复位操作
close():关闭流
8
输入输出流的基类
方法read()提供了三种从流中读数据的方法.
int read():读一个整数
int read(byte b[]):读多个字节到数组中
int read(byte,int off,int len);
属于OutputStream类的方法有:
write(int b):将一个整数输出到流中
write(byte b[]):将数组中的数据输出到流中
write(byte b[], int off,int len):将数组b中从off指定的位置开始len长度的数据输出到流中
9
输入输出流的基类
flush():将缓冲区中的数据强制送出
close():关闭流.
PrintStream类
println()不属于OutputStream类,它是PrintStream类的子类,能提供复杂的输出
PrintStream类的方法有:
write, flush, c