android开发第二天文件存储
文件存储:
public class MainActivity extends Activity { EditText mname, mage; TextView mtv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mname = (EditText) findViewById(R.id.editText1); mage = (EditText) findViewById(R.id.editText2); mtv = (TextView) findViewById(R.id.textView1); } public void onClick(View v) { String name = mname.getText().toString(); int age = Integer.parseInt(mage.getText().toString()); String cont = "name=" + name + ",age=" + age + "\n"; try { int id = v.getId(); // 内部保存 if (id == R.id.button1) { FileOutputStream fos = this.openFileOutput("mytext.txt", Context.MODE_APPEND | Context.MODE_WORLD_WRITEABLE | Context.MODE_WORLD_READABLE); fos.write(cont.getBytes()); fos.close(); Toast.makeText(this, "写入完成", 1).show(); } // 读取 else if (id == R.id.button2) { FileInputStream fis = this.openFileInput("mytext.txt"); byte[] bytes = new byte[fis.available()]; fis.read(bytes); fis.close(); String str = new String(bytes); mtv.setText(str); } } catch (Exception e) { e.printStackTrace(); } }
其他app如果想要访问这个mytext.txt文件格式如下:
public class MainActivity extends Activity { TextView mcontent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mcontent=(TextView) findViewById(R.id.textView1); } public void onClick(View v){ switch (v.getId()) { case R.id.button1: try { readRemoteFileByAbslutePath(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case R.id.button2: try { WriteRemoteFileByAbslutePath(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } break; default: break; } } /** * 通过文件绝对路径读取远程文件 * @throws Exception */ public void readRemoteFileByAbslutePath() throws Exception{ String path = "/data/data/com.nanguabing.filedemo/files/mytext.txt" ; FileInputStream fis = new FileInputStream(path); byte[] bytes = new byte[fis.available()]; fis.read(bytes); fis.close(); String str = new String(bytes); mcontent.setText(str); Log.i("Other", str); } /** * 通过文件绝对路径读取远程文件 * @throws Exception */ public void WriteRemoteFileByAbslutePath() throws Exception{ String path = "/data/data/com.nanguabing.filedemo/files/mytext.txt" ; FileOutputStream fos = new FileOutputStream(path,true); fos.write("other write! ".getBytes()); fos.close(); Log.i("Other", "other write over!"); } /** * 通过包相关上下文写入远程文件 * @throws Exception */ public void readRomoteByPackageContext() throws Exception { String pname = "com.nanguabing.filedemo"; Context ctx = this.createPackageContext(pname, Context.CONTEXT_IGNORE_SECURITY); FileInputStream fis = ctx.openFileInput("mytext.txt"); byte[] bytes = new byte[fis.available()]; fis.read(bytes); fis.close(); Log.i("Other",new String(bytes)); } /** * 通过包相关上下文写入远程文件 */ public void readRomoteByPackageContext2() throws Exception { String pname = "com.nanguabing.filedemo"; Context ctx = this.createPackageContext(pname, Context.CONTEXT_INCLUDE_CODE); FileInputStream fis = ctx.openFileInput("mytext.txt"); byte[] bytes = new byte[fis.available()]; fis.read(bytes); fis.close(); Log.i("Other",new String(bytes)); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
移动开发qq群:59516399
csdn下载地址:http://download.csdn.net/detail/wenwei19861106/4975929
分类:
android开发基础教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?