java实现读取txt文件中的内容
我们先来看个例子
importjava.io.*;
/**
*Createdbyliguoqingon2016/3/28.
*/
publicclassReadTxtFile{
publicstaticvoidreadTxt(StringfilePath){
try{
Filefile=newFile(filePath);
if(file.isFile()&&file.exists()){
InputStreamReaderisr=newInputStreamReader(newFileInputStream(file),"utf-8");
BufferedReaderbr=newBufferedReader(isr);
StringlineTxt=null;
while((lineTxt=br.readLine())!=null){
System.out.println(lineTxt);
}
br.close();
}else{
System.out.println("文件不存在!");
}
}catch(Exceptione){
System.out.println("文件读取错误!");
}
}
publicstaticvoidmain(String[]args){
StringfilePath="D:\\test\\我.txt";
readTxt(filePath);
}
}
看完上面的例子,我们再来详细研究下
java读取txt文件内容。可以作如下理解:
首先获得一个文件句柄。Filefile=newFile();file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。
通过这条线路读取甲方的信息:newFileInputStream(file)目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西
既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据
解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。
packagecom.campu;
importjava.io.BufferedInputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
importjava.io.Reader;
/**
*@author码农小江
*H20121012.java
*2012-10-12下午11:40:21
*/
publicclassH20121012{
/**
*功能:Java读取txt文件的内容
*步骤:1:先获得文件句柄
*2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
*3:读取到输入流后,需要读取生成字节流
*4:一行一行的输出。readline()。
*备注:需要考虑的是异常情况
*@paramfilePath
*/
publicstaticvoidreadTxtFile(StringfilePath){
try{
Stringencoding="GBK";
Filefile=newFile(filePath);
if(file.isFile()&&file.exists()){//判断文件是否存在
InputStreamReaderread=newInputStreamReader(
newFileInputStream(file),encoding);//考虑到编码格式
BufferedReaderbufferedReader=newBufferedReader(read);
StringlineTxt=null;
while((lineTxt=bufferedReader.readLine())!=null){
System.out.println(lineTxt);
}
read.close();
}else{
System.out.println("找不到指定的文件");
}
}catch(Exceptione){
System.out.println("读取文件内容出错");
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargv[]){
StringfilePath="L:\\Apache\\htdocs\\res\\20121012.txt";
//"res/";
readTxtFile(filePath);
}
}