• 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)

  • 相关阅读:
    JaunsGraph数据模型
    JanusGraph的schema及数据建模
    JanusGraph Server配置
    JanusGraph与Cassandra集成模式
    cassandra的primary key, partition key, cluster key,
    Predix Asset Service深度分析
    Predix中模型设计
    web工程中web.xml元素加载顺序以及配置实例
    Tomcat,Jboss,Glassfish等web容器比较选型
    intelliJ idea像eclipse一样在class中断点调试
  • 原文地址:https://www.cnblogs.com/chzhyang/p/13437909.html
Copyright © 2020-2023  润新知