java的FileInputStream类读取文件

    xiaoxiao2021-03-25  40

    package net.csdn.InputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; /** * Created by rabbit先生 on 2017/3/11 0011. */ public class FileInputStreamDemo { /** * 前面已经说过了File类,其主要作用就是对文件进行操作, * 例如读取文件,确定文件的名字,修改时间等问题,但都是基于文件级别的操作 * * 今天,我们来将对文件内容的读取操作,在java中对文件进行操作使用的是IO流 * IO流:就是指InputStream(输入流)和OutputStream(输出流) * 特别说明: * 输入流就是把文件中的东西进行输入到内存中, * 输出流就是把内存中的东西输出到文件中, * 我们可以使用内存来做分别,输入到内存就是输入流,从内存中输出就是输出流 * * 我们使用最基础的类:FileInputStream * 使用文件路径:F:\fileInputStream\a.txt * a.txt文件中的内容是:abcdefghijklmn * 最后:流就像是水龙头一样,有开有关,所以使用交流之后记得对流进行关闭操作, * 不然会浪费内存,导致你的电脑开发的时候越来越卡 */ //创建FileInputStream对象,使用FileInputStream(File file) //创建这个对象的时候需要传递一个File类,所以我们先创建File类,使用File(String pathname) //我们传递一个本地文件的绝对路径就可以了 public static void main(String[] args) throws Exception { //创建File类对象 File file = new File("F:\\fileInputStream\\a.txt"); //创建FileInputStream对象,并关联对应的文件,创建对象的时候会出现异常 FileInputStream fis = new FileInputStream(file); //我们现在可以通过FileInputStream对象对文件的内容进行读取了 /*************第一种方式开始代码{一次读取一个}****************/ //使用的时候请关闭方式二的代码 // int len; //循环一个一个读取{当读取不到的时候会返回-1所以可以使用这个做循环的条件} //可能有人觉得奇怪,我文件里面的内容是字母,为什么可以使用int类型接收呢? //答案:读取的时候获取到的是ASCII碼{可以System.out.println(len);不转换输出试一下}, // 所以我们需要转换 // while ((len = fis.read()) != -1) { // System.out.println((char)len); // } // fis.close();//关闭流 /*************第一种方式结束代码****************/ /*************第二种方式开始代码{一次读取多个放到字节数组中}****************/ //这种方式效率更加高,因为不用频繁的操作硬盘,一次就读了1M //byte[] bytes = new byte[1024];//为了读取方便,一次读取1M, //将读取到的数据保存到bytes这个字节数组中 int length; byte[] bytes = new byte[1024]; while ((length = fis.read(bytes)) != -1) { System.out.print(new String(bytes, 0, length));//将数据变为字符串输出 } fis.close();//关闭流 //int read = fis.read(bytes);//返回读取到的长度{也是字节数组中的长度} /*************第二种方式结束代码****************/ } } 知春秋 认证博客专家 博客专家 Java高级研发 不忘初心,方得始终。初心易得,始终难守。
    转载请注明原文地址: https://ju.6miu.com/read-27663.html

    最新回复(0)