BigDataJava基础_FileInputStream的基本使用
Posted 奔跑的金鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BigDataJava基础_FileInputStream的基本使用相关的知识,希望对你有一定的参考价值。
概念描述
知识点1:FileInputStream是按照一个一个字节去文件中读取数据的
知识点2:当文件中的数据被读取完毕之后,再次读取,则返回的是-1
知识点3:读取出来的字节可以通过char进行ascII码转换
代码部分
test.txt的文件内容如下:
在以下代码中,为手动去读取一次字节,每read一次,读取一个字节
package cn.test.logan.day09; import java.io.FileInputStream; public class FileInputStreamDemo { public static void main(String[] args) throws Exception { // 首先构造一个FileInputStream对象 FileInputStream fis = new FileInputStream("e:/test.txt"); // FileInputStream是一种字节流,是按照一个一个字节去文件中读取数据的 int read = fis.read(); System.out.println(read); } }
输出结果为:97
在上面的代码中我们发现read一次才读取一个字节,并且如果我们一直手工read下去,不难发现,当文件内容被读取完毕之后,则返回-1,所以,我们可以使用-1作为结束标志进行循环读取
package cn.test.logan.day09; import java.io.FileInputStream; public class FileInputStreamDemo { public static void main(String[] args) throws Exception { // 首先构造一个FileInputStream对象 FileInputStream fis = new FileInputStream("e:/test.txt"); // FileInputStream是一种字节流,是按照一个一个字节去文件中读取数据的 // 根据-1特性,遍历整个文件 int read = 0; while((read = fis.read())!=-1) { System.out.println(read); } } }
输出结果为:97 98 99
但是在上述读取程序中我们不难发现,这样读取出来的全是"数字",如果需要读取出文件中原模原样的东西,我们必须得转码,以下则为转码程序:
package cn.test.logan.day09; import java.io.FileInputStream; public class FileInputStreamDemo { public static void main(String[] args) throws Exception { // 首先构造一个FileInputStream对象 FileInputStream fis = new FileInputStream("e:/test.txt"); // FileInputStream是一种字节流,是按照一个一个字节去文件中读取数据的 // 将读取的字节进行转码,使用char int read = 0; while((read = fis.read())!=-1) { char c = (char)read; System.out.println(c); } } }
输出结果为:a b c
通过上述程序,我们将文本中的内容完整读取出来了。
以上是关于BigDataJava基础_FileInputStream的基本使用的主要内容,如果未能解决你的问题,请参考以下文章
BigDataJava基础_FileOutputStream写入文件