IO流 InputStream 字节输入流和OutputStream 字节输出流 以及实例

  • Post author:
  • Post category:其他




IO流



java IO流原理

1、I/O是input/Output的缩写,I/O技术是非常实用的技术,用于处理数据传输。如读/写文件,网络通讯等。

2、java程序中,对于数据的输入/输出操作以”流(stream)”的方式进行

3、java.io包下提供了各种”流“类的接口,用以获取不同种类的数据,并通过方法输入或输出数据

4、输入 input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中

5、输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中



流的分类

按操作数据单位不同分为:字节流(8 bit)二进制文件,字符流(按字符)文本文件

按数据流的刘翔不同分为:输入流,输出流

按流的角色的不同分为:节点流,处理流/包装流

抽象基类 字节流 字符流

输入流 InputStream Reader

输出流 OutputStream Writer

//以上四个类都是抽象类,在使用的时候要创建他们的子类对象

1)Java的IO流共涉及40多个类,实际上非常规则,都是从如上4个抽象基类派生的。

2)由这四个类派生出来的子类名称都是以其父类名作为子类名后缀。



InputStream 字节输入流

InputStream:字节输入流

InputStream抽象类是所有类字节输入流的超类

InputStream 常用的子类

1、FIleInputStream:文件输入流

2、BufferedInputStream:缓冲字节输入流

3、Object Input Stream:对象字节输入流



InputStream 应用实例

应用实例:使用FIleInputStream 读取hello.txt文件,并将文件内容显示到控制台

//1.创建FileInputStream 对象
FileInputStream fis =new FileInputStream("D:/hello.txt");
//读取文件的方法1,一个一个字节的读取
/*read方法功能:读取单个字节,返回该字节的码值,如果读到文件末尾,返回-1*/
int read;
while((read=fis.read())!=-1){
    System.out.print((char)read);
}


/*
2.read(byte[])功能:读取多个字节到byte[],返回读取到的字节个数,如果到文件末尾,返回-1
 */
//byte[] b=new byte[1024];
//int len;
//while((len=fis.read(b))!=-1){
//将读取到的字节0 到len转成String输出
//     System.out.println(new String(b,0,len));
//}
//3.关闭流,以释放内存
fis.close();



OutputStream 字节输出流

OutputStream:字节输出流

OutputStream抽象类是所有类字节输出流的超类

OutputStream 常用的子类

1、FIleOutputStream:文件输出流

2、BufferedOutputStream:缓冲字节输出流

3、ObjectOutputStream:对象字节输出流



OutputStream 应用实例

应用实例:使用FIleInputStream 读取hello.txt文件,并将文件内容写入到world.txt文件中

FileInputStream fis = new FileInputStream("D:/hello.txt");
FileOutputStream fis2=new FileOutputStream("D:/world.txt");
/*read方法功能:读取单个字节,返回该字节的码值,如果读到文件末尾,返回-1*/
int read;
while ((read = fis.read()) != -1) {
    System.out.print((char) read);
    //将读取到的字节,写入到指定的文件下
    fis2.write(read);
}

小结:InputStream主要用来读取文件中的内容,而OutputStream用来将内容写入文件,可以通过两个流的结合,而做到文件复制的效果



版权声明:本文为qq_52761400原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。