前几天遇到这样一个问题,如何把上亿条数据从solr数据库转到mysql数据库
上亿条数据一下次转过去,显然不合适,我们就在想,可不可以一千一千的转。那这么转显然需要一个戳,需要知道下一个一千从哪里算起。
这就让我们想到了时间戳,用properties文件,将时间戳存在属性文件中,然后通过读写属性文件,完成数据的转存
项目结构
今天,我就把读写properties文件的代码贴出
首先,写文件
public void allPrint(String tableName,String field,String value){
String filePath = this.getClass().getResource("/").getPath()+tableName;
File file = new File(filePath);
try {
FileOutputStream outputFile = new FileOutputStream(file);
Properties propertie = new Properties();
propertie.setProperty(field, value);
propertie.store(outputFile, field);
outputFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ioe){
ioe.printStackTrace();
}
}
读文件比较困难一点,首先,创建一个util类PropertyUtil.java
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropertyUtil {
private String fileName;
private Properties p;
public PropertyUtil(){
}
public PropertyUtil(String fileName){
this.fileName=fileName;
this.parseProperty(fileName);
}
public void parseProperty(String fileName){
if(fileName!=null){
InputStream is=this.getClass().getClassLoader().getResourceAsStream(fileName);
try {
p=new Properties();
p.load(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public String getProperty(String key){
return p.getProperty(key);
}
}
最后,通过这个方法读出
public static String allRead(String tableName,String field){
PropertyUtil pro = new PropertyUtil(tableName);
String ming = pro.getProperty(field);
return ming;
}