android保存 读取 本地数据
一、使用步骤
1.文件的保存类
代码如下(示例):
public class Service {
public void save(OutputStream outStream, String content) throws IOException {
outStream.write(content.getBytes());
outStream.close();
}
/*
* 读取文件信息
* */
public String read(InputStream inStream) throws IOException
{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while((len = inStream.read(buffer))!=-1)
{
outStream.write(buffer,0,len);
}
byte[] data = outStream.toByteArray();
outStream.close();
inStream.close();
return new String(data);
}
}
2.保存到本地
MODE:操作模式
MODE:操作模式
MODE_APPEND
如果文件中已经存在内容,则在内容末尾追加
MODE_PRIVATE
文件仅能被该程序访问
MODE_WORLD_READABLE
文件允许被其它应用程序访问
MODE_WORLD_WRITEABLE
文件允许被其它应用程序访问
代码如下(示例):
//保存数据
ArrayList<FocusOnDataBean> data=new ArrayList<>();
OutputStream outStream;
try {
Gson g = new Gson();
String jsonString = g.toJson(data);
outStream = HomeMoreNewActivity.this.openFileOutput("cszcdata.txt", Context.MODE_PRIVATE);
Service service = new Service();
service.save(outStream, jsonString);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
3.读取本地数据
代码如下(示例):
InputStream inStream;
try {
inStream = mContext.openFileInput("cszcdata.txt");
Service service = new Service();
String content = service.read(inStream);
Gson gson = new Gson();
List<FocusOnDataBean> datalist = gson.fromJson(content, new TypeToken<List<FocusOnDataBean>>() {
}.getType());
Log.i(TAG, "onResume: 获取保存数据"+datalist.size());
}
} catch ( FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}