java读写操作txt文件

最近有个需要用户提交手机号和其他信息的功能,并记录下来。服务器上没有装数据库,数据过一段时间也会进行清空操作。所以直接就存在txt文件中。以下是代码部分:

定义全局变量文件路径

private  static String fileUrl = "/usr/local/tomcat/excel/ab.txt";

写入txt方法

public Result commitUenc(User query) {
		//*************************写入
		File file1 = new File(fileUrl);
		try {
			List<User> dataGroup = readExcel(query);
			if(dataGroup==null){

			}else{
				FileWriter fw = new FileWriter(file1);
				BufferedWriter bw = new BufferedWriter(fw);
				for(int i = 0; i<dataGroup.size();i++){
					bw.write(dataGroup.get(i).toString()+"\n");
					bw.flush();
				}
				bw.close();
				fw.close();
				return  new Result(Constant.BOOLEAN, Constant.CODE, Constant.MESSAGE, "申请成功!");
			}

		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return  new Result(Constant.ERR_BOOLEAN, Constant.ERR_CODE, Constant.ERR_MESSAGE, "手机号或地址已存在!");
	}

readExcel()方法,对文件中的手机号进行排重。

/**
 * 获取数据
 * @param
 * @return
 * @throws Exception
 */
private static List<User> readExcel(User query) throws Exception {

	List<User> dataGroup = new ArrayList<User>();

	File file = new File(fileUrl);
	try {
		FileReader fr = new FileReader(file);
		BufferedReader br = new BufferedReader(fr);
		String readData;

		dataGroup = new ArrayList<>();
		while((readData = br.readLine())!=null){
			try{
				if(StringUtils.isNotBlank(readData)){
					User user = JSON.parseObject(readData, User.class); //反序列化
					if(user.getPhone().equals(query.getPhone())){
						return null;
					}else if(user.getWallet().equals(query.getWallet())){
						return null;
					}else{
						dataGroup.add(user);//读出所有数据,存入ArrayList中
					}
				}else{
					dataGroup.add(query);//读出所有数据,存入ArrayList中
				}
			}catch (Exception e){
				e.printStackTrace();
			}
		}
		dataGroup.add(query);
		br.close();
		fr.close();
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
	return dataGroup;
}

以上代码完成txt的操作,在调用方法之前,在全局定义的目录下创建ab.txt的空文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值