public classReadWriteStyles {
StringfileDirectoryString= getSDDir() + "/" + Tags.BASE_DIR
+Tags.CONFIG_STYLES;// 统一存储路径接口
StringfileNameString= "styles.txt";
FiledirectoryFile= null;
FilestyleFile= null;
FileWriterfw;
BufferedWriterbw;
Contextcontext;
public ReadWriteStyles(Contextcontext) {
this.context = context;
}
public List<LayerStyles>parseConfigFromJson() {
StringfileContent = readStyleFile();
if (fileContent.equals("") ||fileContent.length() == 0) {
return null;
}
TypelistType = newTypeToken<List<LayerStyles>>(){}.getType();
Gsongson = newGson();
List<LayerStyles>styleslist = gson.fromJson(fileContent, listType);
return styleslist;
}
public voidparseConfigToJson(List<LayerStyles> layerstyles) {
TypelistType = newTypeToken<List<LayerStyles>>(){}.getType();
Gsongson = newGson();
StringfileContent = gson.toJson(layerstyles, listType);
try {
styleFile = new File(fileDirectoryString+ fileNameString);
intlen=fileContent.getBytes().length;
byte [] buf=new byte[len];
buf=fileContent.getBytes();
FileOutputStreamfo=newFileOutputStream(styleFile);
fo.write(buf,0,len);
fo.close();
}catch(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String readStyleFile() {
Stringstr = null;
try {
styleFile = new File(fileDirectoryString+ fileNameString);
InputStreaminputStream = null;
if (!styleFile.exists()) {
showMessage("no style.txt");
}
inputStream= newFileInputStream(styleFile);
int size =inputStream.available();
byte[] buffer = new byte[size];
inputStream.read(buffer);
inputStream.close();
str= newString(buffer,"GB2312");
}catch(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
protected final String getSDDir() {
try {
StringSD_DIR = CompatManager.getInstance().getRegisteredContext()
.getExternalStorageDirectoryPath();
return SD_DIR;
}catch(Exception e) {
return "";
}
}
public boolean checkSDCard() {
StringsdStatus = Environment.getExternalStorageState();
if(sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
return true;
}else{
return false;
}
}
public void showMessage(String str){
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
}