android 按行读取txt文本内容

 public static String ReadTxtFile(String strFilePath)  
    {  
        String path = strFilePath;  
         newList=new ArrayList();
            //打开文件  
            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 Txt() {  
        //将读出来的一行行数据使用List存储  
        String filePath = "/mnt/sdcard/efb/about.txt";  

        List newList=new ArrayList();
        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){}
	}



你可能感兴趣的:(Android)