您的位置:首页 > 其它

IO流学习(一)

2014-12-11 20:53 127 查看
IO流学习(一)

IO流用于处理设备之间的数据传输

Java对数据的操作是通过流的方式

Java用于操作数据的对象都砸死IO包中

流按操作数据分为两种:字节流和字符流

(ASCII是美国)

(GBK)中国自己定义的中文编码

(UNICODE)两字节,统一编码

(UTF-8)是对UNICODE的优化,有一字节,两字节和三字节

字符流是基于字节流的,里面有很多码表

流按流向分:输入流,输出流

字节流的抽象基类 InputStream和OutputStream

字符流的抽象基类 Reader和Writer

由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀

如:InputStream的子类FileInputStream

如:Reader的子类FileReader

字符流:

既然IO流是用于操作数据的,那么数据的最常见的体现形式是:文件

专门用于操作文件的Writer子类对象,FileWriter,后缀名是父类名,前缀是功能,它无空参数构造函数

public class FileWriterDemo {
public static void main(String[] args){
FileWriter fw = null;
try {
//创建一个FileWriter对象,关联到被操作的文件
//如果文件不存在,创建文件,如果文件已存在,文件内容就将被覆盖
// fw = new FileWriter("demo.txt");
//如果文件不存在,创建文件,如果文件已存在,文件内容附写在文件末尾处
fw = new FileWriter("demo.txt",true);
//调用write方法,将字符串写到流缓冲中
fw.write("hello world");
//刷新流的缓冲
fw.flush();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fw != null){
//关闭流,关闭之前会刷新流缓冲,用完之后必须关闭
fw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class FileReaderDemo {
public static void main(String[] args){
FileReader fr = null;
try {
//创建文件读取流对象,管理对象
fr = new FileReader("demo.txt");
//失败则返回-1,成功则返回读取的一个字符
//int c = fr.read();
//失败则返回-1,成功则返回读取的长度
char[] buf = new char[1024];
int len;
while ((len = fr.read(buf))!=-1) {
//不要用println
System.out.print(new String(buf,0,len));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: