zoukankan      html  css  js  c++  java
  • java io理解

    InputStream
    OutputStream //这2个是一个一个字节的读和写。
    Reader
    Writer //这2个是一个一个字符的读和写。

    这四个抽象类,

    @Test
    public void testoud() throws IOException {
      File f=new File("E:\eclipse-jee-kepler-SR1-win32\workspace1\io_excetpion\src\com\yinhai\liyang\test.java");
      Reader in=new FileReader("E:\eclipse-jee-kepler-SR1-win32\workspace1\io_excetpion\src\com\yinhai\liyang\test.java");
      char ca[]=new char[(int) f.length()];//f.length()这个返回的是此文件的大小,也就是字节大小,当这个文件中有几个汉字的时候就会大几个空格
      int a=in.read(ca);
      String str=new String(ca,0,a);      //所以在这里要用a来截断
      System.out.println(str);
      in.close();

    }

    @Test
    public void testoud1() throws IOException {
      File f=new File("E:\eclipse-jee-kepler-SR1-win32\workspace1\io_excetpion\src\com\yinhai\liyang\test.java");
      InputStream in=new FileInputStream("E:\eclipse-jee-kepler-SR1-win32\workspace1\io_excetpion\src\com\yinhai\liyang\test  .java");
      byte[] ca=new byte[(int) f.length()];   //这里就不会出现上面这种情况
      int a=in.read(ca);
      String str=new String(ca);
      System.out.println(str);
      in.close();
    }

    书中有一句话:在字符流的操作中,所有字符都是在内存中形成的

    由此可以理解为Reader的时候,先读一个字节,然后能成功转换成字符的话就是一个字符,不能的话再读一个字节来转成字符,这样就解决了汉字占2个字节的问题。

    Writer写也一样,能转换成一个byte的就直接写,不能的就转换成2个byte来写。

    总结:字符流的实质还是字节流。



    1.这里只记录一些学习笔记 2.这里只记录一些学习心得,如果心得方向有错,请留言 2.这里只记录一些日记(只为提升英语,暂时有点忙,等转行了开始写)
  • 相关阅读:
    OpenCASCADE 平面与球面求交
    OpenCASCADE 平面求交
    为 Taro 的小程序 TS 模板加点料
    async-validator 的中文文档翻译
    JS中的与冒号的作用、箭头函数相关的一道题
    为Electron 安装 vue-devtool等扩展
    小程序做一个能够左右滑动切换的多tab页面
    使用sourceMap文件定位小程序错误信息
    手写一个promise
    通过页面预加载(preload)提升小程序的响应速度
  • 原文地址:https://www.cnblogs.com/liyang31tg/p/3540213.html
Copyright © 2011-2022 走看看