zoukankan      html  css  js  c++  java
  • Java的IO流

    概念

    1. IO流:数据从外部介质(磁盘、键盘)输入到内存为输入流,反之为输出流。
    2. 文件的存储方式:所有的文件在硬盘或在传输时都是以字节的方式进行的,字符是只有在内存中才会形成。读取字节流后,不直接操作,而是查询指定编码表,就可以转化为字节流(如文字)。
    3. Java的字节流和字符流
      1. 字节流:按字节处理,直接操作文件本身,主要用于处理二进制数据、视频、图片、文件等。
      2. 字符流:按虚拟机的encode来处理,要进行字符集转化。主要用来处理文本。
    4. 父类:InputStream、OutputStream是所有字节IO流的祖先,Reader、Writer是所有字符IO流的祖先。他们r都是抽象类,写代码不能能直接new,需要使用多态方式转化。
    5. 字节流和字符流的区别:字节流不使用缓冲区

    操作举例

    字节流举例

    import java.io.File;    
    import java.io.FileOutputStream;    
    import java.io.OutputStream;    
    public class OutputStreamDemo05 {    
    	public static void main(String[] args) throws Exception {  
    		File f = new File("d:" + File.separator + "test.txt"); // 声明File对象 
    		//通过子类实例化父类对象 
    		OutputStream out = null;  
    		out = new FileOutputStream(f);  //多态实例化
    		String str = "Hello World!!!";
    		byte b[] = str.getBytes();
    		out.write(b);
    		out.close(); //因为字节流不用缓冲区,所以即使不关闭流,也会输出结果
    		}
    }
    

    字符流举例

    import java.io.File;    
    import java.io.FileWriter;    
    import java.io.Writer;    
    public class WriterDemo03 {    
        public static void main(String[] args) throws Exception { 
        	File f = new File("d:" + File.separator + "test.txt");
        	//通过子类实例化父类对象 
        	Writer out = null;   
        	out = new FileWriter(f); //多态实例化
        	String str = "Hello World!!!";
        	out.write(str); 
        	//out.close();//只有关闭字符流或者使用out.flush()强制清空缓冲区,才会输出结果
        }
    

    相互转化

    从字节流转化为字符流时,实际上就是byte[]转化为String
    String(byte bytes[], String charsetName)
    字符流转化为字节流时,实际上是String转化为byte[]
    byte[] String.getBytes(String charsetName)

  • 相关阅读:
    【修正】gooogleman嵌入式联盟部分图标,并增加gooogleman名片(20101205)
    【程序基础】==和=号的区别
    gooogleman嵌入式开发板联盟准备配发嵌入式视频教程
    【终极版】gooogleman嵌入式开发板联盟图标发布以及使用说明
    关于wince驱动和应用学习的N个问题
    【原创】深刻体会wince 驱动中Sleep函数的作用
    网站策划的经典语录
    repeater中用单选按钮
    一个专业制作网站者的自白
    (原创)文件压缩代码
  • 原文地址:https://www.cnblogs.com/chzhyang/p/13437909.html
Copyright © 2011-2022 走看看