黑马程序员技术交流社区

标题: 【上海校区】java基础篇---I/O技术(一) [打印本页]

作者: 默默呜呜    时间: 2019-2-21 10:53
标题: 【上海校区】java基础篇---I/O技术(一)
本帖最后由 默默呜呜 于 2019-2-21 11:11 编辑

java基础篇---I/O技术(一)

一  java中流的概念划分
     流的方向:
         输入流:数据源到程序(inputStream,Reader读进来)
         输出流:程序到目的地(OutPutStream,Writer写出去)
     处理数据单元:
         字节流:按照字节读取数据(InputStream,OutputStream)
         字符流:按照字符读取数据(Reader,Writer)
     功能不同:
         节点流:直接从数据源或目的地读写数据
         处理流:不直接连接到数据源或目的地,是处理流的流,童工对其他流的处理提高程序的性能。
     Jdk提供的流继承了四大类:
         InputStream(字节输入流)
         OutputStream(字节输出流)
         Reader(字符输入流)
         Writer(字符输出流)
  InputStream
       抽象类java.io.InputStream是所有字节输入流类型的父类,该类中定义了以字节为单位读取数据的基本方法,并在其子类中进行了分化和实现.
       三个基本的read方法:
          int read()
          int read(byte[] buffer)
          int read(byte[] buffer,int offset,int length)
       其他方法:
          void close()
          int available()
          skip(long n)
          boolean markSupported()
[Java] 纯文本查看 复制代码
import java.io.File ;
import java.io.InputStream ;
import java.io.FileInputStream ;
public class InputStreamDemo{
    public static void main(String args[]) throws Exception{    // 异常抛出,不处理
        // 第1步、使用File类找到一个文件
        File f= new File("d:" + File.separator + "test.txt") ;    // 声明File对象
        // 第2步、通过子类实例化父类对象
        InputStream input = null ;    // 准备好一个输入的对象
        input = new FileInputStream(f)  ;    // 通过对象多态性,进行实例化
        // 第3步、进行读操作
        byte b[] = new byte[1024] ;        // 数组大小由文件决定
        int len = 0 ;
        int temp = 0 ;            // 接收每一个读取进来的数据
        while((temp=input.read())!=-1){
            // 表示还有内容,文件没有读完
            b[len] = (byte)temp ;
            len++ ;
        }
        // 第4步、关闭输出流
        input.close() ;                        // 关闭输出流\
        System.out.println("内容为:" + new String(b,0,len)) ;    // 把byte数组变为字符串输出
    }
};
三  OutputStream
     java.io.OutputStream与java.io.InputStream对应,是所有字节输出流类型的抽象父类。
    三个基本的write方法:
        void write(int c)
        void write(byte[] buffer)
        void write(byte[] buffer,int offset,int length)
     其他方法:
       void close()
       void flush()
[Java] 纯文本查看 复制代码
import java.io.File ;
import java.io.OutputStream ;
import java.io.FileOutputStream ;
public class OutputStreamDemo{
    public static void main(String args[]) throws Exception{    // 异常抛出,不处理
        // 第1步、使用File类找到一个文件
        File f= new File("d:" + File.separator + "test.txt") ;    // 声明File对象
        // 第2步、通过子类实例化父类对象
        OutputStream out = null ;    // 准备好一个输出的对象
        out = new FileOutputStream(f)  ;    // 实例化
        // 第3步、进行写操作
        String str = "Hello World!!!" ;        // 准备一个字符串
        byte b[] = str.getBytes() ;            // 只能输出byte数组,所以将字符串变为byte数组
        out.write(b) ;        // 写入数据
        // 第4步、关闭输出流
        // out.close() ;                        // 关闭输出流
    }
};






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