黑马程序员技术交流社区

标题: [石家庄校区]Java输入输出流笔记 [打印本页]

作者: g207776411    时间: 2018-4-23 15:23
标题: [石家庄校区]Java输入输出流笔记
本帖最后由 小石姐姐 于 2018-4-26 14:16 编辑

Java输入输出流笔记

Day_10输入流,输出流  
  标准输入和标准输出流
System.in -->InputStreamReader--Reader-->        
打印流的特有功能转换流  
  ​
  ​
  # 对象流
  ​
   * ObjectInputStream            从文件中读入一个对象到内存中
   * ObjectOutputStream         将内存中的对象写入文件中
  ​
  创建集合对象,存储类的对象,然后直接写入类的对象
  ​
  读取数据时,直接读取集合对象,就不会报异常
  ​
  ​
  ​
  # 序列化接口
  ​
      但我们改变成员变量的时候,增删成员变量, 如果没有给类生成序列号,那么在读取类成员变量数据的时候,会报错。
  ​
      生成序列号的前提,我们**必须实现序列化接口**,否则无法生成序列号对象操作流概述
例题:
  
  ​编码表
把计算机底层的二进制数据转换成我们能看到的字符        * ASCII
编码的读取和写入  /*
   * 有字符串“键盘敲烂,月薪过万”
      以“UTF-8”编码写到根路径下的aa.txt文件中
      以“UTF-8”编码读取并打印到控制台
      有字符串“键盘敲烂,月薪过万”
      以“UTF-8”编码写到根路径下的aa.txt文件中
      以“UTF-8”编码读取并打印到控制台
   */
  public class UTFDemo {
      public static void main(String[] args) throws IOException {
          // 输出流
          method();
          // 输入流
          method2();
      }
  ​
      private static void method2() throws FileNotFoundException, IOException, UnsupportedEncodingException {
          FileInputStream fi = new FileInputStream("demo.txt");
  ​
          // 定义一个字节数组
          byte[] by = new byte[1024];
  ​
          int line = fi.read(by);
          // 将读取的字节数据转换成UTF-8的格式成字符串来显示
          String str = new String(by, 0, line, "UTF-8");
          // 输出数据
          System.out.println(str);
  ​
          // 关闭资源
          fi.close();
      }
  ​
      private static void method() throws UnsupportedEncodingException, FileNotFoundException, IOException {
          // 定义一个字符串
          String s = "键盘敲烂,月薪过万!";
          // 将字符串转换成byte数组的形式
          byte[] by = s.getBytes("UTF-8");
          FileOutputStream fs = new FileOutputStream("demo.txt");
  ​
          fs.write(by);
          fs.close();
      }
  }
特殊的和Map类似Properties类
注意:




















欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2