第二周学习总结

Posted on 2019-03-08 21:31  咳咳你  阅读(109)  评论(0)    收藏  举报

所花时间:5h

代码行:100行

这周自己学了一些io知识点,原来一点输入流和输出流都不知道。只知道这些代码可以完成这些这次自己也系统的复习了一下这个

打印流:

package com.cloud.day1;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.PrintStream;

/*

打印流(printStream)  打印流可以打印任意类型的数据,而且打印数据之前都会先把数据转换成字符串再进行打印。

*/

class Animal {

   String name;

   String color;

   public Animal(String name, String color) {

      this.name = name;

      this.color = color;

   }

   @Override

   public String toString() {

      return "Animal [name=" + name + ", color=" + color + "]";

   }

}

public class Demo1 {

   public static void main(String[] args) throws IOException {

      File file = new File("E:\\a.txt");

      //创建一个打印流

      /*

      PrintStream printStream = new PrintStream(file);

      printStream.println(123);

      printStream.println("spring");

      Animal animal = new Animal("Cat","black");

      printStream.println(animal);

      //默认标准的输出流就是向控制台输出

      System.out.println(printStream);

      */

      //收集日常的日志信息

      File logFile = new File("E:\\execption.log");

      PrintStream printStream = new PrintStream(new FileOutputStream(logFile,true));

      try {

        int c = 4/0;

        System.out.println("c="+c);

        int[] arr = null;

        System.out.println(arr.length);

      } catch (Exception e) {

        e.printStackTrace();

      }

   }

}

  转换流:

package com.cloud.day1;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

/*

转换流:

输入字节流的转换流:InputStreamReader 是字节流通向字符流的桥

   InputStreamReader

输出字节流的转换流:

   OutputStreamWriter   可以把输出字节流转换成输出字符流。 

转换流的作用:

   1. 如果目前所获取到的是一个字节流需要转换字符流使用,这时候就可以使用转换流。  字节流----> 字符流

   2. 使用转换流可以指定编码表进行读写文件。

*/

public class Demo3 {

   public static void main(String[] args) throws IOException {

      //readTest();

      //writeTest();

      readTest2();

   }

   //使用输入字节流的转换流指定码表进行读取文件数据

   public static void readTest2() throws IOException{

      File file = new File("D:\\a.txt");

      FileInputStream fileInputStream = new FileInputStream(file);

      //这里的编码如果使用UTF-8会发生乱码

      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"gbk");

      char []buf = new char[1024];

      int length = 0;

      while((length = inputStreamReader.read(buf))!=-1){

        System.out.println(new String(buf , 0 , length));

      }

   }

   public static void writeTest() throws IOException{

      File file = new File("D:\\a.txt");

      FileOutputStream fileOutputStream = new FileOutputStream(file);

      OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);

      outputStreamWriter.write("Hello,春天");

      outputStreamWriter.close();

   }

   /**

    * 控制台输入:asa

    * 内容:asa

    * @throws IOException

    */

   public static void readTest() throws IOException{

      //获取标准的输入流

      InputStream in = System.in;

      //字节流转换成字符流

      InputStreamReader inputStreamReader = new InputStreamReader(in);

      //使用字符流的缓冲类

      BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

      String line = null;

      while((line = bufferedReader.readLine())!=null){

        System.out.println("内容:"+line);

      }

   }

}