java 读取1m文件_java的FileInputStream类读取文件

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);//返回读取到的长度{也是字节数组中的长度}

/*************第二种方式结束代码****************/

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值