我的应用程序编程遇到了一些问题。我找了很长时间的解决方案,但我找不到它,所以我希望你能帮忙。
假设我已经构建了一个应用程序,使用户可以通过号码所有者的名称保存电话号码。因此,活动包含两个EditeText:一个用于人名,一个用于他的号码,另外还有一个要保存的按钮。
如何使“app”将用户内容保存为文本文件或任何其他内容,使用FILE NAME = person name + FILE CONTENT =他的号码。
我想添加另一项活动,允许用户按其所有者的插入名称搜索数字,而且我也不知道如何设置此功能。
答案 0 :(得分:1)
如何使“app”将用户内容保存为文本文件“或任何 其他的!“与”文件名=人名+文件内容=他的 号码“
因为我想添加允许用户搜索的其他活动 数字按其所有者的插入名称
根据您对问题的描述,使用SQLite
数据库来存储您的数据听起来是一个很好的理由。
从一开始就很好。我认为你对文件的想法不好而且效率高。让我们假设一个案例,如果你有数字>
,在这种情况下你会有milion文件。然后,如果你想阅读文件的内容,你需要打开每个文件来获取数据并且它不好,不是吗?还设计模式一个文件=一个记录(用户)
在第二个Activity中搜索也将是“硬编码”。在这里,您必须根据用户输入的名称浏览文件并比较其名称。
所以正如我的建议是使用SQLite
而不是接近文件。在这里,写入和读取数据变得更加舒适,安全和有效。只需创建一个名为User的表,其中包含两列(名称,编号)并执行适当的操作。如果您不知道如何开始,请阅读这篇非常好的文章:
答案 1 :(得分:0)
您可以尝试使用此功能将内容写入手机上sdcard文件夹中的文件。
public void appendToFile(String content, String name)
{
File logFile = new File("sdcard/"+name+".txt");
if (!logFile.exists())
{
try
{
logFile.createNewFile();
}
catch (IOException e)
{
e.printStackTrace();
}
}
try
{
//BufferedWriter for performance, true to set append to file flag
BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true));
buf.append(text);
buf.newLine();
buf.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
请注意,您需要
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在AndroidManifest.xml文件中。
答案 2 :(得分:0)
你应该读这个:http://developer.android.com/guide/topics/data/data-storage.html。它是如何在Android应用程序中保存数据的指南。
我建议这个特定任务的SQLite数据库,而不是在文件系统上保存为文件。