简单的文件读写提取firefox标签json数据

由于编写shell脚本误操作,rm -rf本机的用户文件,导致浏览器书签,缓存,SSH缓存等丢失,泪奔啊~ 找回firefox书签文件,看着头大,写个小程序转换了下

/**
*
* Copyright 2010 boosj.com, Inc. All rights reserved.
*/
package com.boosj.cache.dbutils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class FileUtils {

public BufferedReader bufread;
public BufferedWriter bufwriter;
File writefile;
String filepath,filecontent,read;
String readStr="";

public String readfile(String path) //从文本文件中读取内容
{
try
{
filepath=path; //得到文本文件的路径
File file=new File(filepath);
FileReader fileread=new FileReader(file);
bufread=new BufferedReader(fileread);
while((read=bufread.readLine())!=null)
{
readStr=readStr+read;
}
}catch(Exception d){System.out.println(d.getMessage());}
return readStr; //返回从文本文件中读取内容
}
//向文本文件中写入内容
public void writefile(String path,String content,boolean append)
{
try
{
boolean addStr=append; //通过这个对象来判断是否向文本文件中追加内容
filepath=path; //得到文本文件的路径
filecontent=content; //需要写入的内容
writefile=new File(filepath);
if(writefile.exists()==false) //如果文本文件不存在则创建它
{
writefile.createNewFile();
writefile=new File(filepath); //重新实例化
}
FileWriter filewriter=new FileWriter(writefile,addStr);
bufwriter=new BufferedWriter(filewriter);
filewriter.write(filecontent);
filewriter.flush();
}catch(Exception d){System.out.println(d.getMessage());}
}
public static String getFirstContent(String src, Pattern pattern, int index) {
String result = "";
Matcher m = pattern.matcher(src);
if (m.find()) {
result = m.group(index);
}
return result;
}
public static void main(String[] args) {
String path = "/home/joy/.mozilla/firefox/eempvary.default/bookmarkbackups/bookmarks-2010-11-10.json";
FileUtils fu = new FileUtils();
String content = fu.readfile(path);
String[] s= content.split("title");
String targetPath = "/home/joy/workspace/bookmark.txt";

Pattern TITLE_PATTERN = Pattern.compile("\":\"([\\s\\S]*?)\",\"id\"");
Pattern URL_PATTERN = Pattern.compile("\"uri\":([\\s\\S]*?)\",\"charset\"");

for (String ss :s) {
String stitle = fu.getFirstContent(ss, TITLE_PATTERN, 1);
System.out.println(stitle);
String surl = fu.getFirstContent(ss, URL_PATTERN, 1);
System.out.println(surl);
fu.writefile(targetPath, stitle+"||"+surl+"\r\n", true);
}
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值