`

Android文件存储多路径存储(2)

阅读更多
  • 文件存储

1.直接利用Activity提供文件操作方法

data\data\<package name>\file\文件名称

文件操作也一共两个方法,一个是文件输出

Activity代码如下:

public class MainActivity extends Activity {

	private static final String FILENAME="ee";
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		FileOutputStream output=null;
		try {
			//设置文件输出名称及创建模式
			output=super.openFileOutput(FILENAME,Activity.MODE_PRIVATE);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		PrintStream out=new PrintStream(output);
		out.println("姓名: 张依依  ");
		out.println("年龄: 21 ");
		out.println("地址: 湖南大学");
		//关闭输出流
		out.close();
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 输出路径同上一堂课路径一致DDMS

现在我们实现读入文件:

只需要增添这几句:

private TextView txt=null;

 添加输入:

//输入方法
		txt=(TextView)super.findViewById(R.id.msg);
		FileInputStream input=null;
		try {
			input=super.openFileInput(FILENAME);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Scanner scan=new Scanner(input);//定义scanner
		while(scan.hasNext()){
			txt.append(scan.next()+"\n");
		}
		
		scan.close();//关闭输入流

 实现效果如图:



 

实现上面的代码似乎我们可以想存就存了,但是!!!现在手机的内存一般都比较小,空间也早被其他霸道软件占据,当然土豪机那种机身内存16G,32G的另算,一般来说我们会把数据存到SD卡上,sd卡大家都知道是什么吧,黑黑的插卡,那么接下来的移花接木看好了:

因为默认存储位置是在手机,那么我们给它改变路径

代码如下:

public class MainActivity extends Activity {

	private static final String FILENAME="/storage/extSdCard/eedata/authoree.txt";//文件名称
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		File file=new File(FILENAME);
		if(!file.getParentFile().exists()){
			file.getParentFile().mkdirs();
		}
		PrintStream out=null;
		
		try {
			out=new PrintStream(new FileOutputStream(file));
			out.println("姓名: 张依依  ");
			out.println("年龄: 21 ");
			out.println("地址: 湖南大学");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(out!=null){
				out.close();
			}
		}
	}
	


	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

注意记得配置权限:

 <uses-permission 
        
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        
        />

 

还有因为此程序要用到sd卡,首先自己的虚拟你查看时候要配置好sd卡,也就是创建虚拟机时要勾选sd卡的选项,建议用手机实验。

实现效果如下:




接下来我们要把它读出来

实际上在io流中,刚才我们的操作是写入。

读到手机上其实也很简单,要知道QQ不在线也可以浏览聊天信息是使用了本地存储,而需要联网刷新更早的聊天记录是因为通过了后台网站服务器的数据库,学完本课是不是有点小激动去实现自己的不在线预览功能呢了,言归正传,开始写入

布局文件定义:

  <TextView
         android:id="@+id/msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
                                       />

 添加输出

Activity代码定义,只需要加上FileInputStream操作即可,与前面读文件异曲同工


 

public class MainActivity extends Activity {

	private static final String FILENAME="authoree.txt";//文件名称
	private static final String DIR="eedata";//文件名称
	
	private TextView txt=null;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.txt=(TextView)super.findViewById(R.id.msg);
		if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//如果Sd卡存在
			File file=new File(Environment.getExternalStorageDirectory().toString()+
					File.separator+DIR+File.separator+FILENAME);
		
		
		
		if(!file.getParentFile().exists()){
			file.getParentFile().mkdirs();
		}
		
		//写入方法
//		PrintStream out=null;
		
//		try {
//			out=new PrintStream(new FileOutputStream(file));
//			out.println("姓名: 张依依  ");
//			out.println("年龄: 21 ");
//			out.println("地址: 湖南大学");
//		} catch (FileNotFoundException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}finally{
//			if(out!=null){
//				out.close();
//			}
//		}
		//输入方法
				
				
				Scanner scan=null;//定义scanner
				try {
					scan=new Scanner(new FileInputStream(file));
					while(scan.hasNext()){
						txt.append(scan.next()+"\n");
					}
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}finally{
					if(scan!=null){
						scan.close();//关闭输入流
					}
					
					}
					
				}else{
					Toast.makeText(this, "SD卡不存在读取失败", Toast.LENGTH_LONG).show();//sd卡不存在提示
				
	}
		
}
	


	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 同时我们看一下没有sd卡的虚拟机运行效果


读取效果如图:


 

 


 
 

  • 大小: 18.8 KB
  • 大小: 36.4 KB
0
0
分享到:
评论

相关推荐

    Android 获取OTG U盘路径 sdcard路径

    2. **获取外部存储路径**:一旦获取权限,可以使用`Environment`类提供的方法来获取内置SD卡(也称为内部存储)的路径。通常,`getExternalStorageDirectory()`返回的是公共外部存储(通常是内部SD卡)的根目录。 `...

    Android不需要文件存储权限将文件保存至手机

    在Android系统中,传统的文件存储方式通常需要应用获取相应的文件读写权限,以便在外部存储(如SD卡)上保存和访问数据。然而,随着Android系统的更新,特别是自Android 6.0(Marshmallow)引入运行时权限管理以来,...

    android文件路径详解

    理解Android中的文件路径对于开发者来说至关重要,因为这关系到如何正确地存储、读取和操作文件。本篇文章将深入探讨Android文件路径的各个方面。 1. **内部存储** - **/data/data/包名**: 这是Android应用的私有...

    Android获取手机所有文件存储路径

    博客地址:http://blog.csdn.net/lowprofile_coding/article/details/48269011 1.获取扩展存储设备 2.获取sdcard2外部存储空间 3.获取可用的 EMMC 内部存储空间 4.获取其他外部存储可用空间 5.获取内部存储目录

    Android-FileChooser一个Android文件(路径)选择器超简单配置

    在Android应用开发中,经常会遇到需要用户选择文件或目录的需求,这时可以借助第三方库来实现。"Android-FileChooser"是一个专为Android设计的文件选择器,它的特点是配置简单,易于集成到项目中。这个库可以帮助...

    android txt文件保存读取操作

    在Android平台上,对TXT文件进行保存和读取是常见的数据持久化操作,尤其适用于存储少量结构化的文本数据。本文将详细讲解如何在Android应用中实现TXT文件的保存和读取功能,以及涉及到的相关知识点。 首先,我们...

    【Android 文件管理】分区存储 ( 修改与删除图片文件 )

    2. 使用File对象:对于已知路径的本地图片文件,可以直接通过File对象进行读写操作。不过,由于Android 11的限制,可能需要请求适当的权限。 ```java File imageFile = new File(imagePath); FileOutputStream out ...

    安卓Android源码——文件浏览返回路径.rar

    在安卓(Android)开发中,理解文件系统的浏览和返回路径是非常关键的部分,这对于构建一个功能完善的文件管理器应用尤其重要。这份"安卓Android源码——文件浏览返回路径.rar"的压缩包显然包含了关于如何在Android...

    Android存储字符串数据到txt文件

    "Android存储字符串数据到txt文件" Android存储字符串数据到txt文件是Android开发中的一种常见需求,对于大多数开发者来说,存储字符串数据到txt文件是一种非常有用的功能。今天,我们将详细介绍如何在Android中...

    Android代码-文件浏览返回路径.zip

    这个"Android代码-文件浏览返回路径.zip"压缩包显然包含了实现这一功能的源码示例。下面,我们将深入探讨如何在Android应用中实现文件浏览并获取返回路径。 1. **Android权限管理**: 在Android中,访问文件系统...

    Android 获取内外置存储卡

    2. **获取外部存储(外置SD卡)路径**: - 对于Android 4.4(KitKat)之前,外置SD卡路径通常是 `/mnt/sdcard` 或 `/storage/sdcard0`。 - 从Android 4.4开始,为了更好地管理外部存储,引入了`...

    android通过反射获取内置存储、SD、OTG盘的路径,适合三方apk存储查看与文件管理

    在Android系统中,由于各个设备厂商的定制化差异,存储路径并不一致,使得开发者在处理文件存储和管理时面临挑战。尤其是对于内置存储、SD卡以及OTG(On-The-Go)外部存储设备的访问,往往需要特殊的方法。在标题和...

    android文件读取、写入(自带空间、SDCard)的记事本程序程序

    2. 获取外部存储的公共文件路径: ```java File externalPublicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS); // 公共文档目录 File publicFile = new File...

    Android7.0 自定义文件管理器 获取文件夹路径

    在Android 7.0中,还需注意存储访问框架(SAF)的引入,它提供了更安全的文件访问方式,可能需要使用`DocumentFile`类。 4. 文件适配器(FilesAdapter): `FilesAdapter-master`可能包含一个自定义的Adapter类,...

    Android案例:备忘录。利用数据存储的文件内部存储

    在Android应用开发中,数据存储是一项基础且重要的技术,它使得应用可以持久化地保存用户数据,例如备忘录应用中的记录。本案例是关于如何使用Android的数据存储机制,特别是文件内部存储,来创建一个简单的备忘录...

    android中文件的保存与读取

    在Android系统中,文件的保存和读取...总结起来,Android文件系统的使用涵盖了内部存储和外部存储,涉及文件的创建、读写以及权限控制等多个方面。开发者需要根据应用需求选择合适的数据存储方式,并注意安全性和效率。

    Android根据文件路径加载指定文件

    在Android开发中,有时我们需要根据文件路径...综上所述,"Android根据文件路径加载指定文件"涉及了Android的文件操作、多媒体处理、权限管理等多个方面。实际开发中,开发者需要结合具体需求,灵活运用这些知识点。

    Android TV USB路径或手机SDCARD路径获取

    总的来说,获取Android TV或手机上的SDCARD路径和USB路径涉及对Android存储模型的理解,以及使用适当的API进行操作。在开发过程中,始终要确保遵循最新的Android最佳实践和权限管理,特别是在处理用户数据时。

    android demo,sd卡文件存储和data下文件存储。

    Android存储策略** 在设计应用的存储策略时,应考虑以下几点: - 对于需要与其他应用共享的文件,可选择SD卡的公共目录。 - 私有数据应存储在应用的data目录下,确保数据安全。 - 考虑到外部存储的可读写性,及时...

    android文件存储源码及笔记

    8. **文件路径的构造**:在Android中,外部存储的根目录可以通过`Environment.getExternalStorageDirectory()`获取,然后根据需要构建完整的文件路径。 `SDCard.xlsx`文件可能是关于Android文件存储的笔记或示例...

Global site tag (gtag.js) - Google Analytics