例如当前在D:\\test目录下有一个名为demo.txt的文件,文件里面的内容如下图所示:
第一种方式: 使用BuffererReader 缓冲字符输入流
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
/**
* BuffererReader 缓冲字符输入流
*/
@Slf4j
public class FileContentReadDemo {
public static void main(String[] args) {
String filePath="D:\\test\\demo.txt";
String result = fileRead(filePath);
System.out.println(result);
}
private static String fileRead(String filePath){
//1.定义一个BufferedReader对象,将文件内容读取到缓存
BufferedReader bufferedReader =null;
String returnInfo="";
try{
// 2.定义一个file对象
File file = new File(filePath);//定义一个file对象,用来初始化FileReader
// 3.定义一个fileReader对象
FileReader reader = new FileReader(file);
// 4.定义一个BufferedReader对象,将文件内容读取到缓存
bufferedReader = new BufferedReader(reader);
// 5.定义一个字符串缓存,将字符串存放缓存中
StringBuilder stringBuilder = new StringBuilder();
String str = "";
while ((str =bufferedReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格
stringBuilder.append(str + "\n");//将读取的字符串添加换行符后累加存放在缓存中
}
returnInfo = stringBuilder.toString();
}catch (Exception e){
log.error("读取文件里面的内容出现异常:",e);
}finally {
try{
if(bufferedReader!=null){
bufferedReader.close();
}
}catch (Exception e){
log.error("关闭文件流出现异常:",e);
}
}
return returnInfo;
}
}
执行上述代码,其输出内容为:
{
"name": "张三",
"address": "北京天通苑"
}
第二种方式: 使用BuffererReader 文件字节输入流
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.FileInputStream;
import java.nio.charset.StandardCharsets;
import java.util.Date;
@Slf4j
public class FileContentReadDemo {
public static void main(String[] args) {
long start =new Date().getTime();
String filePath="D:\\test\\demo.txt";
String result = fileRead(filePath);
System.out.println(result);
long end =new Date().getTime();
System.out.println(end-start);
}
private static String fileRead(String filePath){
FileInputStream inputStream=null;
String returnInfo="";
try{
File file = new File(filePath);
inputStream = new FileInputStream(file);
int length = inputStream.available();
byte bytes[] = new byte[length];
inputStream.read(bytes);
returnInfo =new String(bytes, StandardCharsets.UTF_8);
}catch (Exception e){
log.error("读取文件里面的内容出现异常:",e);
}finally {
try{
if(inputStream!=null){
inputStream.close();
}
}catch (Exception e){
log.error("关闭文件流出现异常:",e);
}
}
return returnInfo;
}
}
执行上述代码,其输出内容为:
{
"name": "张三",
"address": "北京天通苑"
}