zoukankan      html  css  js  c++  java
  • Java中的IO流,Input和Output的用法,字节流和字符流的区别

    Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流。内存中的数据持久化到设备上--------》输出(Output)。把 硬盘上的数据读取到内存中,这种操作 成为输入-----》读(Input)。

    input和output的参照物都是Java程序来参照

    Input:读  持久化上的数据------》内存 父类 InputStream

    output:写  内存---------》硬盘  父类OutputStream

    IO程序书写流程:

      1 使用前   导包 IO包中的类(import java.io.*)

      2   使用中   进行异常的处理

      3 使用后     释放资源(close())

    例子如下:

    OutputStream字节输出流的用法(写):

     1 package com.aaa.demo;
     2 
     3 import java.io.FileNotFoundException;
     4 import java.io.FileOutputStream;
     5 
     6 /*
     7  * FileOutputStream 写入数据文件 学习父类的方法 使用子类的对象
     8  * 子类中的构造方法 作用:绑定输出的目的的
     9  * File封装的文件
    10  * String字符串的文件夹
    11  * */
    12 public class FileOutputStreamDemo {
    13     public static void main(String[] args) throws Exception {
    14         //创建流子类对象 绑定数据目的
    15         FileOutputStream fos=new FileOutputStream("c:\aaa.txt");
    16         //调用write()方法 写一个字节
    17         fos.write(97);
    18         //2.1写字节数组
    19         byte[] b={65,66,67,68};
    20         fos.write(b);
    21         //2.2写字节数组的一部分
    22         fos.write(b,1,2);
    23         //2.3写字符串 getBytes()字符串转字节
    24         fos.write("hello world".getBytes());
    25         //3.close关闭资源
    26         fos.close();
    27     }
    28 }

    InputStream字节输入流的用法(读):

     1 package cn.lijun.demo1;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.FileNotFoundException;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 
     8 // 1创建字节输入流的子类对象
     9 //2 调用方法读取 read
    10 //3 关闭资源
    11 
    12 public class FileInputStreamDemo {
    13     public static void main(String[] args) {
    14         try {
    15             FileInputStream fis = new FileInputStream("c:\aaa.txt");
    16             int len =0;
    17             while((len=fis.read())!=-1){
    18                 System.out.print((char)len);
    19             }
    20         } catch (IOException e) {
    21             // TODO Auto-generated catch block
    22             e.printStackTrace();
    23         }
    24     }
    25 }

    字节流和字符流的相同和区别:

      相同点:两类都分为输入和输出操作。

      不同点:1、字节流可用于任何类型的对象;分为InputStream(读)和OutputStream(写)两部分完成输入和输出;主要用来处理字节或二进制对象,,不能处理Unicode字符。

          2、字符流分别操作字符、字符数组或字符串;分为Writer类和Reader类完成;主要用来处理字符或者字符串,可以处理Unicode字符。

  • 相关阅读:
    java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header.
    spring-session-data-redis依赖冲突问题
    centos7启动iptables时报Job for iptables.service failed because the control process exited with error cod
    图片上传后台服务报内存溢出 Out Of Memory Java heap space
    mysql 数据库密码忘记重置 进行远程连接
    打Jar包
    Type interface com.innovationV2.mapper.UserMapper is not known to the MapperRegistry
    关于java基础类型Integer String的clone()
    clion使用clang编译
    token & refresh token 机制总结
  • 原文地址:https://www.cnblogs.com/yanpingping/p/10594550.html
Copyright © 2011-2022 走看看