Java读取txt文件工具类--Java免费学习网

package com.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

/**
 * 读取txt文件
 * @author ccj
 *
 */
public class RefreshReadTextFile {
 //private static List<String> fileInfo = null; 
 private static Map<String,List<String>> cacheMap = new HashMap<String,List<String>>();//文件信息读取
 private static Map<String,Long> lastModifyTimeMap = new HashMap<String,Long>();
 private static long timeOut = 10*60*1000; //每10分钟更新一次
 /**
  * 读取文件内信息
  * @param file
  * @return  
http://www.javalearns.com/
  * @throws IOException 
  */
 public static List<String> read(String file) throws IOException{
  //每隔10分钟进行一次文件信息更新读取
  List<String> fileInfo = cacheMap.get(file);
  Long lastModifyTime =  StringUtils.getNotNullLong1(lastModifyTimeMap.get(file));
  
  BigInteger b1 = new BigInteger(System.currentTimeMillis()+"");
  BigInteger b2 = new BigInteger(StringUtils.getNotNullLong(lastModifyTime)+"");
  BigInteger b3 = b1.subtract(b2);
  //System.out.println("b3="+b3+",timeout="+timeOut);   
http://www.javalearns.com/

  if(fileInfo==null || lastModifyTime==null || lastModifyTime==0 || b3.longValue()>timeOut){
   fileInfo = new Vector<String>();
   File f = new File(file);
   //如果文件不能正常读取,返回空的List
   if(!f.exists() || !f.isFile() || !f.canRead()){
    return fileInfo;
   }
   BufferedReader br = new BufferedReader(new FileReader(f));
   String s = null;
   while((s=br.readLine())!=null){
    if(!s.trim().equals("")){
     fileInfo.add(s.trim());
    }
   }
   cacheMap.put(file, fileInfo);
   lastModifyTimeMap.put(file, System.currentTimeMillis());
  }
  
  return fileInfo;
 }
 
 public static void main(String[] args) throws IOException{
  List<String> list = RefreshReadTextFile.read("E:\\work\\jtb\\workspace\\jtb_archive\\web\\WEB-INF\\config\\userList.txt");
  for(String s : list){
   System.out.println(s);
  }
 }

}

文章转载自  http://www.javalearns.com/Html/?1546.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值