IO流学习(一)

来源:互联网 发布:如何投诉app软件 编辑:程序博客网 时间:2024/06/06 04:42

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) {//不要用printlnSystem.out.print(new String(buf,0,len));}} catch (IOException e) {e.printStackTrace();}finally{if (fr != null) {try {fr.close();} catch (IOException e) {e.printStackTrace();}}}}}









0 0
原创粉丝点击