您的位置:首页 > 移动开发 > Android开发

android 按行读取txt文本内容

2017-09-21 09:51 507 查看
public static String ReadTxtFile(String strFilePath)
{
String path = strFilePath;
newList=new ArrayList<String>();
//打开文件
File file = new File(path);
//如果path是传递过来的参数,可以做一个非目录的判断
if (file.isDirectory())
{
Log.d("TestFile", "The File doesn't not exist.");
}
else
{
try {
InputStream instream = new FileInputStream(file);
if (instream != null)
{
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
//分行读取
while (( line = buffreader.readLine()) != null) {
newList.add(line+"\n");
}
instream.close();
}
}
catch (java.io.FileNotFoundException e)
{
Log.d("TestFile", "The File doesn't not exist.");
}
catch (IOException e)
{
Log.d("TestFile", e.getMessage());
}
}
return strFilePath;
}


读取的数据在newList里面,直接转换拿出来用就可以了。

/**
* 根据行读取内容
* @return
*/
public List<String> Txt() {
//将读出来的一行行数据使用List存储
String filePath = "/mnt/sdcard/efb/about.txt";

List newList=new ArrayList<String>();
try {
File file = new File(filePath);
int count = 0;//初始化 key值
if (file.isFile() && file.exists()) {//文件存在
InputStreamReader isr = new InputStreamReader(new FileInputStream(file));
BufferedReader br = new BufferedReader(isr);
String lineTxt = null;
while ((lineTxt = br.readLine()) != null) {
if (!"".equals(lineTxt)) {
String reds = lineTxt.split("\\+")[0]; //java 正则表达式
newList.add(count, reds);
count++;
}
}
isr.close();
br.close();
}else {
Toast.makeText(getApplicationContext(),"can not find file",0).show();
}
} catch (Exception e) {
e.printStackTrace();
}
return newList;
}

上面两种方法其实是一样的

/**
* openFileInput 用于指定文件名称,不能包含路径分隔符“/”
     * @param filePath "text.txt"指定文件名
*/
public void readFileOnLine(String filePath){//输入文件路径
try{
FileInputStream fis = TestStr.this.openFileInput(filePath);//打开文件输入流
StringBuffer sBuffer = new StringBuffer();
DataInputStream dataIO = new DataInputStream(fis);//读取文件数据流
String strLine = null;
while((strLine = dataIO.readLine()) != null) {//通过readline按行读取
sBuffer.append(strLine + "\n");//strLine就是一行的内容
}
dataIO.close();
fis.close();
}catch(IOException e){}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息