java IO的使用1

JAVA IO

基本概念

I/O 这里的I和O指的是输入与输出

  • 输入:Input 用来读取数据的
  • 输出:Output 用来写出数据的

流的概念

java将输入与输出比喻为"流",英文:Stream.

就像生活中的"电流","水流"一样,它是以同一个方向顺序移动的过程.只不过这里流动的是字节(2进制数据).所以在IO中有输入流和输出流之分,我们理解他们是连接程序与另一端的"管道",用于获取或发送数据到另一端.

超类

  • java.io.InputStream是所有字节输入流的超类,里面定义了所有字节输入流都必须具备的读取字节的方法

    • int read()

      读取一个字节,以int形式返回,该int值的”低八位”有效,若返回值为-1则表示EOF

  • int read(byte[] data)

    尝试最多读取给定数组的length个字节并存入该数组,返回值为实际读取到的字节量。

  • java.io.OutputStream是所有字节输出流的超类,里面定义了所有字节输出流都必须具备的写出字节的方法

    • void write(int d)

      写出一个字节,写的是给定的int的”低八位”

  • void write(byte[] data)

    将给定的字节数组中的所有字节全部写出

  • void write(byte[] data,int offset,int len)

    将给定的字节数组中从offset处开始的连续len个字节写出

文件流

概念

文件流是用来链接我们的程序与文件之间的"管道",用来读写文件数据的流。

文件流分为

  • 文件输入流java.io.FileInputStream:读取文件数据的流
  • 文件输出流java.io.FileOutputStream:写入文件数据的流
  • 文件流是继承自InputStream和OutputStream

文件输出流

java.io.FileOutputStream使用文件输出流向文件中写入数据

构造器

FileOutputStream(String path)
创建文件输出流对指定的path路径表示的文件进行写操作,如果该文件不存在则将其创建出来

FileOutputStream(File file)
创建文件输出流对指定的file对象表示的文件进行写操作,如果该文件不存在则将其创建出来

package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JAVA IO
 *
 */
public class FOSDemo {
    public static void main(String[] args) throws IOException {
        /*
            FileOutputStream(String path)
            FileOutputStream(File file)
         */
        //向当前项目目录下的文件fos.dat中写入数据
        FileOutputStream fos = new FileOutputStream("./fos.dat");
//        File file = new File("./fos.dat");
//        FileOutputStream fos = new FileOutputStream(file);
        /*
            void write(int d)
            用来向文件中写入1个字节

            计算机底层只有2进制。1和0

                        8421
         0000 0         0001    1
         0001 1         0010    2
         0010 2         0100    4
         0011 3         1000    8
         0100 4
         0101 5         1110    14
         0110 6
         0111 7        01111111  +127       1字节  1byte
         1000 8        10000000  -
         1001 9
         1010 10
         1011 11
         1100 12
         1101 13
         1110 14
         1111 15


         write方法会将给定的int值对应的2进制的"低八位"写出
         fos.write(1)

         int型1的2进制:
         00000000 00000000 00000000 00000001
                                    ^^^^^^^^
                                    写出的数据
         fos.dat文件中内容:
         00000001

         write(2)
         2的2进制
         00000000 00000000 00000000 00000010
                                    ^^^^^^^^
                                    写出的数据

         fos.dat文件中内容:
         00000001 00000010
         */
        fos.write(1);
        fos.write(2);

        //当IO操作完毕后要关闭
        fos.close();


    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值