java输入输出流:FileInputStream

java输入输出流:FileInputStream,第1张

java输入输出流:FileInputStream

字节输入流:InputStream
字节输出流:InputStream
输入流:从输入设备中读取数据
输出流:将数据写入到输出设备中


FileInputStream

  • 从文件系统中的某个文件中获得输入字节
  • 用于读取诸如图像数据之类的原始字节流

字节流的用途:用于读取图像数据等二进制数据
从文档中读取字符串一般用字符流来完成。

下面是几个读数据的方法,如果返回值为-1,则表示已经达到文件末尾!

public int read()   //从输入流中读取一个数据字节
public int read(byte[] b)   //从输入流中将最多b.length个字节的数据读入一个byte数组中
public int read(byte[] b,int off,int len)   //从输入流中将最多len个字节的数据读入byte数组中
public void close()   //关闭此文件输入流并释放与此流有关的所有系统资源

在score.txt中写入“Hello, Java!”,使用read()读取score.txt中的内容。

public static void main(String[] args) { 
    //创建一个FileInputStream对象
    try {
        FileInputStream fis = new FileInputStream("java_stream\score.txt");
        //方式一
        // int n = fis.read();
        // while(n != -1){    //当n为-1时,表示已经达到文件末尾
        //     System.out.print((char)n);
        //     n = fis.read();
        // }
        //方式二
        int n = 0;
        while((n = fis.read()) != -1){
            System.out.print((char)n);
        }
        fis.close();   // *** 作完成,关闭文件
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

输出:

Hello, Java!

使用read(byte[] b)读取score.txt中的内容:

public static void main(String[] args) { 
    //创建一个FileInputStream对象
    try {
        FileInputStream fis = new FileInputStream("java_stream\score.txt");
        //read(byte[] b)方法
        byte[] b = new byte[100];
        fis.read(b);
        System.out.println(new String(b));
        fis.close();   // *** 作完成,关闭文件
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

使用read(byte[] b,int off,int len)读取score.txt中的内容:

try {
    FileInputStream fis = new FileInputStream("java_stream\score.txt");
    //read(byte[] b, int off, int len)方法,int off表示从数组中第几位开始存数据,int len表示存几位数据
    byte[] b = new byte[100];
    fis.read(b, 0, 5);
    System.out.println(new String(b));
    fis.close();   // *** 作完成,关闭文件
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

输出:

Hello

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4969958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存