1,相关的方法:(FileInputStream类)字节输入流

image.png
read:

  1. 1. **在读取一个字符时,返回的值是一个已读取数据的数据对应字节码;**
  2. 1. **在读取多个字符时,返回值是一个已读取数据的数量;**

注意:当所有数据取出后,返回的数量变为 :-1;
字节码转字符:读一个用char来转;读多个在数组中用String来转;

i,字节输入流读取步骤:

  1. 创建输入流对象:

    1. FileInputStream fileOutputStream = new FileInputStream("G:\\abc.txt");
  2. 从流中循环读取一个字节数据:(效率低)

    1. public class Text {
    2. public static void main(String[] args) throws IOException {
    3. FileInputStream fileOutputStream = new FileInputStream("G:\\abc.txt");
    4. //定义一个变量保存每次读取到的数据的字节码
    5. int b;
    6. //循环读取数据,等于-1停止
    7. while ((b = fileOutputStream.read()) != -1){
    8. //转为字符输出:
    9. System.out.println((char) b);
    10. }
    11. }
    12. }
  3. 流中循环读取多个字节保存到参数的数组中:(推荐:效率高,且稳定,5是最快的)

    1. 推荐数组长度设置为:1024 * 8 ;且数组类型是 byte 的;

      1. public class Text {
      2. public static void main(String[] args) throws IOException {
      3. //创建输入流:
      4. FileInputStream fis = new FileInputStream("G:\\abc.txt");
      5. byte[] bytes = new byte[1024 * 8];
      6. int len;
      7. while (( len = fis.read(bytes)) !=-1){
      8. //输出每次读取的数量;
      9. System.out.println(len);
      10. //用int转String的api方法将机器码转为字符;
      11. System.out.println(new String(bytes));
      12. }
      13. }
      14. }
  4. 关闭输入流:

    1. fileOutputStream.close();