`
wangming2012
  • 浏览: 140460 次
  • 性别: Icon_minigender_1
  • 来自: 枣阳
社区版块
存档分类
最新评论

Android 文件的保存和读取

阅读更多
Android 给我们提供了两个方法返回输入、输出流,分别为:openFileInput(String fileName)
、openFileOutput(String fileName,int mode);
下面看一自己写了一个简单的例子:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <EditText 
        	android:id="@+id/fileName"
        	android:layout_width="match_parent"
        	android:layout_height="wrap_content"
        	android:hint="请输入文件名称"
        >
       <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/fileContent"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        />
    
    <LinearLayout 
        	 android:orientation="horizontal"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
        >
        <Button 
             android:id="@+id/saveData"
             android:text="保存"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
            />
        <Button 
             android:id="@+id/readData"
             android:text="读取"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
            />
    </LinearLayout>
</LinearLayout>


public class FileActivity extends Activity {

    EditText fileName;
    EditText fileContent;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        fileName = (EditText)findViewById(R.id.fileName);
        fileContent = (EditText)findViewById(R.id.fileContent);
        
        Button saveData = (Button)findViewById(R.id.saveData);
        saveData.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				OutputStream output;
				try {
			      output =
                               FileActivity.this.openFileOutput(fileName.getText().toString(),   
                                                                            Context.MODE_APPEND);
				FileService.save(output, fileContent.getText().toString());
				Toast.makeText(getApplicationContext(), "保存成功", 
                                                       Toast.LENGTH_LONG).show();
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
        
        Button readData  = (Button)findViewById(R.id.readData);
        readData.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				try {
			InputStream intput = 
                              FileActivity.this.openFileInput(fileName.getText().toString());
			      String content = FileService.read(intput);
			Toast.makeText(getApplicationContext(), content, 
                                                     Toast.LENGTH_LONG).show();
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
    }
}

FileService.java
public class FileService {

	/**
	 * 保存文件
	 * @param output
	 * @param content
	 * @throws IOException
	 */
	public static void save(OutputStream output,String content) throws 
IOException{
		output.write(content.getBytes());
		output.close();
	}
	
	/**
	 * 读取文件
	 * @param input
	 * @throws IOException 
	 */
	public static String read(InputStream intput) throws IOException{
		ByteArrayOutputStream output = new ByteArrayOutputStream();
		byte[] bt = new byte[1024];
		int length = intput.read(bt);
		while(length != -1){
			output.write(bt, 0, bt.length);
			length = intput.read(bt);
		}
		byte[] data = output.toByteArray();
		intput.close();
		output.close();
		return new String(data);
	}
}

分享到:
评论

相关推荐

    Android中实现保存和读取文本文件到内部存储器(实现简易的记事本为例)示例代码.zip

    Android中实现保存和读取文本文件到内部存储器(实现简易的记事本为例)示例代码.zip Android中实现保存和读取文本文件到内部存储器(实现简易的记事本为例)示例代码.zip Android中实现保存和读取文本文件到内部存储器...

    android txt文件保存读取操作

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

    android中文件的保存与读取

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

    Android 逐行写入和读取文本文件Demo

    本示例将详细介绍如何使用Android Studio 3.2进行逐行写入和读取文本文件的操作。 首先,我们需要理解Android对文件操作的基本流程。在Android中,文件操作通常在`Context`的上下文中进行,如`Activity`或`Service`...

    Android Excel文件写入和读取

    本文将详细介绍如何在Android中实现Excel文件的读取与写入。 首先,Android系统本身并不直接支持Excel文件的操作,因此我们需要引入第三方库来实现这一功能。常用的库有Apache POI,这是一个用于处理Microsoft ...

    android读取和保存GBK编码的TXT文档

    以下将详细介绍如何在Android中读取和保存GBK编码的TXT文档。 首先,我们需要了解GBK编码。GBK是GB2312的扩展,它包含了GB2312中的所有字符,并增加了许多其他汉字和符号,总计约20902个汉字。在Java和Android中,...

    Android读取本地json文件的方法(解决显示乱码问题)

    - **Android文件操作**:Android提供了多种文件操作方法,包括读写文件、文件流操作等。 - **SD卡操作**:Android允许应用在外部存储(如SD卡)上进行文件操作,但需要注意权限问题。 - **Android视图View和控件**:...

    android 读取ppt文件

    - **SlideLib**:这是一个专门为Android设计的库,用于读取和显示PPTX文件。它的API更简洁,更适合移动设备的资源限制。 2. **集成Apache POI**: - 首先,需要将Apache POI库导入到Android项目中。这可以通过...

    Android Studio文本文件内容读取例子(不用sd卡)

    在Android开发中,读取文本文件是常见的任务,例如加载配置信息、用户数据或显示静态内容。本示例将详细讲解如何在Android Studio中实现不依赖SD卡的文本文件读取。以下是一个简单的步骤和相关知识点: 1. **创建...

    Android读取并显示word文件的代码例子

    在Android平台上,开发人员...通过以上步骤,你可以在Android应用中实现读取和显示Word文档的功能,覆盖了从doc到docx的格式,并能正确处理图文混排的内容。实际开发中,可以根据需求进行调整,优化性能和用户体验。

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

    在这个目录下,应用可以自由地创建、读取和删除文件,无需请求额外的权限。 3. **内部存储与外部存储**:Android区分了内部存储(Internal Storage)和外部存储(External Storage)。内部存储通常用于保存应用的...

    Android存储数据之一:文件保存与读取.pdf

    总结以上知识点,实现Android应用中的文件保存与读取功能,涉及到了Android文件系统结构、Java I/O技术、异常处理以及Android权限管理等多个方面。通过封装FileService类和在MainActivity中实现用户交互,可以方便地...

    android中读取properties文件

    总结来说,Android中读取`.properties`文件主要涉及`Properties`类的使用,文件的存放位置(如`assets`或`res/raw`),以及适当的错误处理和资源管理。理解这些知识点有助于开发者更高效地管理和使用配置文件。

    Android----文件的保存与读取

    以下将详细讲解Android中如何进行文件的保存和读取。 首先,Android提供了多种方式来存储文件,包括内部存储、外部存储以及SQLite数据库等。内部存储适用于私密性较高的数据,如用户配置或应用状态;外部存储通常...

    怎么实现android中字符串的保存和读取

    ### 如何在Android中实现字符串的保存和读取 在Android开发过程中,经常需要处理数据的持久化问题,其中一种常见的需求就是对字符串进行保存和读取。本文将详细介绍如何利用Java代码实现在Android应用程序中对字符...

    12_文件的保存与读取.zip

    在Android开发中,文件的...总结起来,Android中的文件保存与读取涵盖了多种策略和技术,开发者需要根据具体需求选择合适的存储方式,并注意性能和安全问题。熟悉这些技术,对于构建功能完善的Android应用至关重要。

    Android用文件读取保存记录

    Android用文件读取保存记录

    android 下读取framebuffer的内容

    4. **保存为文件**:读取到的内容通常是原始的RGB或ARGB像素数据,不包含任何文件头信息。你可以将这些字节保存为`.raw`文件,就像描述中所说的那样: ```java FileOutputStream fos = new FileOutputStream("/...

    android 软件参数设置的保存和读取 附

    在Android开发中,保存和读取软件参数是一个常见的任务,这涉及到用户偏好设置(SharedPreferences)的使用。SharedPreferences是Android提供的一种轻量级的数据存储机制,主要用于存储应用的配置信息或用户设置,...

Global site tag (gtag.js) - Google Analytics