本文介绍三种常见的文件读取方法,代码如下:
方法1:
package com.jredu.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
* 读取文件内容
* 方法一
* @author Hello
*
*/
public class Tch1 {
public static void main(String[] args) {
//磁盘路径两种表示方式:1.\\ 2./
try {
//从文件地址中读取内容到程序中
InputStream is=new FileInputStream("此处为文件的相对路径");
//开始读取信息,方法一
//先定义一个字节数组存放数据 ,用available方法确定读取的文件长度
byte[]b=new byte[is.available()];
//声明一个int存储每一次读取到的数据
int i=0;
//定义一个索引的变量
int index=0;
//循环读取每个 数据
while((i=is.read())!=-1){
b[index]=(byte) i;
index++;
}
System.out.println(Arrays.toString(b));
//String(byte[])把字节数组转换成字符串
System.out.println(new String(b));
//使用完毕,关闭流
is.close();
} catch (FileNotFoundException e) {
//文件没有找到
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//文件读写异常
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
方法2:
package com.jredu.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
* 读取文件内容
* 方法二
* @author Hello
*
*/
public class Tch2 {
public static void main(String[] args) {
//磁盘路径两种表示方式:1.\\ 2./
try {
//从文件地址中读取内容到程序中
InputStream is=new FileInputStream("此处为文件的相对路径");
//开始读取信息,方法二
//先定义一个字节数组存放数据 ,可以用available方法确定读取的文件长度
byte[]bs=new byte[is.available()];
//完整的读取一个文件,此方法需要预先知道文件大小,所以使用前可以先定义一个使用available方法的数组
is.read(bs);
System.out.println(Arrays.toString(bs));
//String(byte[])把字节数组转换成字符串
System.out.println(new String(bs));
//使用完毕,关闭流
is.close();
} catch (FileNotFoundException e) {
//文件没有找到
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//文件读写异常
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
方法3:
package com.jredu.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
* 读取文件内容
* 方法三
* @author Hello
*
*/
public class Tch3 {
public static void main(String[] args) {
//磁盘路径两种表示方式:1.\\ 2./
try {
//从文件地址中读取内容到程序中
InputStream is=new FileInputStream("此处为文件的相对路径");
//开始读取信息,方法三
byte[]bs=new byte[8];
int off=0;
// 当off < 0 || len < 0 || len > b.length - off时会抛出异常,需要设置足够长的数组
// 这里要读取的文件有5个字符,所以设置字符串8个可以避免异常
while (is.read(bs, off, 2)!=-1) {
// 通过查看bs和off的输出检查是否下标越界
System.out.println("bs:"+new String(bs));
System.out.println("off:"+off);
off+=2;
}
System.out.println(Arrays.toString(bs));
//String(byte[])把字节数组转换成字符串
System.out.println(new String(bs));
//使用完毕,关闭流
is.close();
} catch (FileNotFoundException e) {
//文件没有找到
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//文件读写异常
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}