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)

  • 相关阅读:
    .NET 2.0 WinForm Control DataGridView 编程36计(一)
    Sql Server 日期格式化函数
    FastReport 金额大小写转换自定义函数
    vue.js 三种方式安装(vuecli)
    Android style
    android ui 布局性能优化
    android 手机分辨率
    TCP,IP,HTTP,SOCKET区别和联系
    android2.2 特性
    常见开放api平台OpenAPI
  • 原文地址:https://www.cnblogs.com/chzhyang/p/13437909.html
Copyright © 2011-2022 走看看