首先写读取和写入的两个方法
static public String ReadActivityFile(Context aContext, String aFile) {
String buffer="";
FileInputStream in2;
try {
in2 = aContext.openFileInput(aFile);
InputStreamReader inReader = new InputStreamReader(in2);
int buf= 1024;
BufferedReader line = new BufferedReader(inReader,buf);
String tmpBuffer = "";
while ((tmpBuffer = line.readLine()) != null) {
buffer += tmpBuffer;
}
line.close();
inReader.close();
in2.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return buffer;
}
static public void WriteActivityFile(Context aContext, String aFile,
String aBuffer) {
try {
FileOutputStream os = aContext.openFileOutput(aFile,
Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
OutputStreamWriter outWriter = new OutputStreamWriter(os);
outWriter.write(aBuffer, 0, aBuffer.length());
outWriter.flush();
outWriter.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
然后在需要用的地方调用就行了,把需要的参数完成:
读取:
String buffer = "";
buffer = FileUtils.ReadActivityFile(ScoreActivity.this,
common.FAVORITE_DATA_FILE);
写入:
FileUtils.WriteActivityFile(ScoreActivity.this,
common.FAVORITE_DATA_FILE, buffer);
下面的一个例子是:点击一次,把这条数据保存到文件里面,然后再点击一次,又取消保存,就是从文件删除:
LinearLayout ly = (LinearLayout) layout
.findViewById(R.id.linear_score_choise);
ly.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String buffer = "";
buffer = FileUtils.ReadActivityFile(ScoreActivity.this,
common.FAVORITE_DATA_FILE);
boolean isFileBlank = false;
if (buffer.length() <= 0) {
// 如果buffer为空,则为true;
isFileBlank = true;
}
boolean has_fav = false;
// 如果buffer不为空
if (!isFileBlank) {
// 解析到集合中
Vector fav_list = CommonUtil.Split(buffer, ",");
buffer = "";// buffer初始化
for (int i = 0; i < fav_list.size(); i++) {
String fav_id = (String) fav_list.elementAt(i);
// System.out.println(fav_id);
if (fav_id.equals(mId)) {
has_fav = true;
continue;
}
if (fav_id.length() <= 0) {
continue;
}
buffer += fav_id;
if (i != fav_list.size() - 1) {
buffer += ",";
}
}
}
if (buffer.length() > 0
&& buffer.charAt(buffer.length() - 1) == ',') {
buffer = buffer.substring(0, buffer.length() - 1);
}
if (has_fav) {
// 取消关注
imageView.setImageResource(R.drawable.gray_star);
Toast.makeText(ScoreActivity.this, "该场关注已取消!",
Toast.LENGTH_SHORT).show();
FileUtils.WriteActivityFile(ScoreActivity.this,
common.FAVORITE_DATA_FILE, buffer);
} else {
// 关注
if (!isFileBlank) {// 如果buffer有数据
buffer += ",";
}
buffer += mId;
imageView.setImageResource(R.drawable.yellow_star);
Toast.makeText(ScoreActivity.this, "该场比赛已成功关注!",
Toast.LENGTH_SHORT).show();
FileUtils.WriteActivityFile(ScoreActivity.this,
common.FAVORITE_DATA_FILE, buffer);
}
}
});
分享到:
相关推荐
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
EasyExcel 并发读取文件字段并进行校验,数据写入到新文件,批量插入数据到数据库 demo
把二进制文件中的数据读出,并写入到一个txt文件中去 (read the data a binary file, and write the data into a txt file)
主要介绍了C#通过流写入数据到文件的方法,涉及C#通过字节流读写文件的相关技巧,需要的朋友可以参考下
codesys通过文件写入功能块是实现对CSV文件数据的写入 a、数组数据处理,将需要的数据转换成CSV需要的字符序列; b、通过SysFileOpen指令打开文件; c、通过SysFileSetPos设置开始写入的位置,一般设置偏移量为0,全...
VS2010实现对CSV文件操作,读取CSV文件指定行列的字符串数据,整形数据,浮点型数据,同时相应把数据写入到CSV文件。
读写文件,包括读写数据,文本等。VC读写文件,从文件中读数据然后写入数据到文件中。
C++实现从.txt文件中读取数据存入数组,将数组数据写入.txt文件.rar C++实现从.txt文件中读取数据存入数组,将数组数据写入.txt文件.rar
c++对txt文件的读取与写入源代码
1读取磁盘文件数据,并解析成对象,然后写入磁盘另一个文件 2读取文件数据并解析成不同数据类型,然后写入磁盘文件。附加功能:对字符串以逗号分割成字段,字段内含逗号
作为一个新手学习C语言读写数据,我整合了一下自己查找的一些资料,用C语言实现将一个文件读入内存中,里面有运行工具,和一个word文档代码。
RandomAccessFile类 向文件中写入/读取 数据。
是Untiy工程文件,其中包括了XML的序列化和反序列化,还有多个XML表之间的连系,代码都写好了,可以把xml数据读出来打印,也可以将一些数据写入到xml表里面,可实现游戏或软件中的复杂数据关系
主要给大家介绍了Spring Batch读取txt文件并写入数据库的方法,SpringBatch 是一个轻量级、全面的批处理框架。这里我们用它来实现文件的读取并将读取的结果作处理,处理之后再写入数据库中的功能。需要的朋友可以...
对CSV文件的读取和写入,简单操作,利用新手阅读和学习
linux C++ 文本文件创建写入以及读取
利用java 读取URL的资源,并且把读取到的资源写入到指定路径的文件中。
读取和写入INI文件的类库。很好用。很好用很好用很好用很好用
Labview Word写入和读取例程,Labview Word写入和读取的方法
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....