03_Android项目中读写文本文件的代码

简介: 编写一下Android界面的项目使用默认的Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.itheima28.writ
  1. 编写一下Android界面的项目

  1. 使用默认的Android清单文件

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.itheima28.writedata"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="19" />

 

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name="com.itheima28.writedata.MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

 

</manifest>

 

  1. Android布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".MainActivity">

 

    <Button

        android:id="@+id/btn_read_private"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="读私有文件" />

 

    <Button

        android:id="@+id/btn_write_private"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="写私有文件" />

 

    <Button

        android:id="@+id/btn_read_readable"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="读可读文件" />

 

    <Button

        android:id="@+id/btn_write_readable"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="写可读文件" />

 

    <Button

        android:id="@+id/btn_read_writeable"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="读可写文件" />

 

    <Button

        android:id="@+id/btn_write_writeable"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="写可写文件" />

 

    <Button

        android:id="@+id/btn_read_readable_writeable"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="读可读可写文件" />

 

    <Button

        android:id="@+id/btn_write_readable_writeable"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="写可读可写文件" />

 

</LinearLayout>

4 Android中的写文本文件的代码

package com.itheima28.writedata;

 

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStreamReader;

 

import android.content.Context;

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Toast;

 

/**

 * 读写文件

 * 注意可以将写文件和写文件的两个功能分别写到不同的项目中进行测试

 * @author toto

 */

public class MainActivity extends ActionBarActivity implements OnClickListener{

    //这个路径是文件所在路径

         private String basicPath = "/data/data/com.itheima28.writedata/files/";

        

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

 

                   // 写数据

                   // 私有文件

                   writeToLocal("private.txt", Context.MODE_PRIVATE);

                   // 可读文件

                   writeToLocal("readable.txt", Context.MODE_WORLD_READABLE);

                   // 可写文件

                   writeToLocal("writeable.txt", Context.MODE_WORLD_WRITEABLE);

                   // 可读可写文件

                   writeToLocal("readable_writeable.txt", Context.MODE_WORLD_READABLE

                                     + Context.MODE_WORLD_WRITEABLE);

                  

                   findViewById(R.id.btn_read_private).setOnClickListener(this);

                   findViewById(R.id.btn_write_private).setOnClickListener(this);

                  

                   findViewById(R.id.btn_read_readable).setOnClickListener(this);

                   findViewById(R.id.btn_write_readable).setOnClickListener(this);

                  

                   findViewById(R.id.btn_read_writeable).setOnClickListener(this);

                   findViewById(R.id.btn_write_writeable).setOnClickListener(this);

                  

                   findViewById(R.id.btn_read_readable_writeable).setOnClickListener(this);

                   findViewById(R.id.btn_write_readable_writeable).setOnClickListener(this);

         }

 

         /**

          * 写文件

          * @param fileName

          * @param mode

          */

         private void writeToLocal(String fileName, int mode) {

                   try {

                            FileOutputStream fos = openFileOutput(fileName, mode);

                            fos.write(("第一个程序写的数据:" + fileName).getBytes());

                            fos.flush();

                            fos.close();

                   } catch (Exception e) {

                            e.printStackTrace();

                   }

         }

        

         /**

          * 哪一个控件被点击, v对象就代表被点击的对象

          */

         @Override

         public void onClick(View v) {

                   switch (v.getId()) {

                   case R.id.btn_read_private:

                            readFile("private.txt");

                            break;

                   case R.id.btn_write_private:

                            writeFile("private.txt");

                            break;

                   case R.id.btn_read_readable:

                            readFile("readable.txt");

                            break;

                   case R.id.btn_write_readable:

                            writeFile("readable.txt");

                            break;

                   case R.id.btn_read_writeable:

                            readFile("writeable.txt");

                            break;

                   case R.id.btn_write_writeable:

                            writeFile("writeable.txt");

                            break;

                   case R.id.btn_read_readable_writeable:

                            readFile("readable_writeable.txt");

                            break;

                   case R.id.btn_write_readable_writeable:

                            writeFile("readable_writeable.txt");

                            break;

                   default:

                            break;

                   }

         }

 

         /**

          * 读文件

          * @param fileName

          */

         private void readFile(String fileName) {

                   try {

                            String path = basicPath + fileName;

                           

                            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path)));

                            String text = reader.readLine();

                            reader.close();

                            Toast.makeText(this, "读取成功: " + text, 0).show();

                   } catch (Exception e) {

                            e.printStackTrace();

                            Toast.makeText(this, "读取失败: " + fileName, 0).show();

                   }

         }

        

         /**

          * 写文件

          * @param fileName

          */

         private void writeFile(String fileName) {

                   try {

                            String path = basicPath + fileName;

                           

                            FileOutputStream fos = new FileOutputStream(path);

                           

                            fos.write("哈哈, 被我给黑了".getBytes());

                           

                            fos.flush();

                           

                            fos.close();

                            Toast.makeText(this, "写入成功: " + fileName, 0).show();

                   } catch (Exception e) {

                            e.printStackTrace();

                            Toast.makeText(this, "写入失败: " + fileName, 0).show();

                   }

         }

}

 


目录
相关文章
|
2月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
120 1
|
2月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
119 2
|
2月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
182 0
安卓项目:app注册/登录界面设计
|
3月前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
52 6
|
2月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
50 2
|
2月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
31 1
|
3月前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
2月前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异:从代码到用户体验
【10月更文挑战第5天】在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。它们在技术架构、开发环境及用户体验上有着根本的不同。本文通过比较这两种平台的开发过程,揭示背后的设计理念和技术选择如何影响最终产品。我们将深入探讨各自平台的代码示例,理解开发者面临的挑战,以及这些差异如何塑造用户的日常体验。
|
2月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目