首先写读取和写入的两个方法
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实现并发读取文件字段、进行数据校验、将数据写入新文件以及批量插入到数据库的操作。 1. **EasyExcel介绍** EasyExcel是一款轻量级的Java Excel处理框架,它基于NIO和内存...
4. **数据写入**: 要将数据写入文件,可以使用`QTextStream`类。例如: ```cpp QTextStream out(&file); out 这是一行数据" ; ``` 这将在文件中写入指定的字符串。若需逐行写入,可以用换行符`\n`分隔。 5. **...
3. **写入数据**:使用`QFile`的成员函数`write()`可以将数据写入文件。数据可以是字符串(转换为`QByteArray`),也可以是二进制数据。例如: ```cpp QString content = "Hello, QT!"; file.write(content.to...
sqlitFileDate方法使用FileReader和BufferedReader来读取大数据文件,并使用LinkedList来存储文件流对象和BufferedWriter对象,然后将每个小文件的数据写入到对应的文件中。 在写入和切分文件操作完成后,程序使用...
在C语言中,读取和写入数据文件是常见的任务,尤其当涉及到处理特定格式的文件,如dat文件时。dat文件通常被用作自定义数据存储,它们没有固定的文件结构,可以包含任何类型的数据。本教程将深入探讨如何使用C语言对...
C语言通过文件流(file stream)的概念来操作这些字节,允许我们读取或写入文件内容。 要读取文件,我们需要打开它。C语言提供了`fopen()`函数,用于打开一个文件并返回一个文件指针。例如: ```c FILE *fp = ...
无论是简单的文本文件还是复杂的数据文件,正确地读取和写入数据都是软件开发的基础之一。本文将详细介绍如何使用C++进行TXT文件的读取与写入,并通过具体的代码示例来加深理解。 #### 二、基本概念 在讨论具体的...
本篇将深入探讨如何使用C#通过流来写入数据到文件,以及涉及到的字节流读写文件的技巧。 首先,我们来看一个简单的例子,这个例子展示了如何使用FileStream和StreamWriter类来写入文本数据到文件。以下代码创建了一...
要实现这个操作,我们需要使用C++的标准库,特别是`fstream`库,它提供了读写文件的功能。下面是一步步的详细步骤: 1. **打开二进制文件**: 使用`ifstream`类来打开二进制文件。通过调用`open()`函数并传入文件...
3. **数据写入**:使用“写入文件”函数,将准备好的字符串数据写入到CSV文件中。由于CSV文件是以逗号分隔数据,因此每个数据项之间应以逗号作为间隔。如果数据本身包含逗号,可以考虑使用引号进行包围,以避免解析...
codesys通过文件写入功能块是实现对CSV文件数据的写入 a、数组数据处理,将需要的数据转换成CSV需要的字符序列; b、通过SysFileOpen指令打开文件; c、通过SysFileSetPos设置开始写入的位置,一般设置偏移量为0,全...
总结来说,RandomAccessFile是Java中用于高效处理文件的强大工具,它提供了一种灵活的方式来读取和写入文件,尤其适用于需要频繁定位和修改文件内容的情况。通过张孝祥的讲解,学习者可以更深入地理解这个类的使用,...
写入测量文件Express VI将数据写入基于文本或二进制的测量文件。输入和输出接线端说明如下。 DAQmx任务:指定用于在对话框“配置用户定义属性→DAQmx属性”生成数据的DAQmx任务。 错误输入(无错误):描述...
将波形数据写入文件,然后读取出来显示波形图形。
文件读取同样涉及到几个关键步骤: - **创建文件对象**:与写入类似,使用`QFile`类创建一个文件对象。 - **打开文件**:这次是采用只读模式`QIODevice::ReadOnly`和文本模式`QIODevice::Text`。 - **使用流进行读取...
“写入二进制文件”位于函数选板的“编程→文件I/O一写入二进制文件”,图标和接线端如图1所示。 输入和输出接线端的说明如下。 prepend arrav Or string slze?... data:数据,待写入文件的
它可能包含`BufferedReader`和`BufferedWriter`等IO流的使用,用于高效地从文件读取数据和向文件写入数据。读取文件时,`BufferedReader`通常用于逐行读取,然后通过诸如`String.split()`方法来解析数据,将其转化为...
2. .xml 文件读取:通过"Load XML Document"函数加载.xml文件,然后使用"Find Node"或"Get Child Nodes"找到所需的数据节点,再用"Get Node Value"提取信息。 四、实际应用示例 在实际项目中,可能需要在程序启动...
3. **写入段**:按照DXF格式的顺序,将数据结构转化为文本或二进制数据并写入文件。 4. **写入实体**:逐一将图形实体写入文件,确保遵循DXF文件的标准格式。 5. **关闭文件**:完成写入后,使用`Close`方法关闭文件...