当前位置: 首页 > news >正文

移动技术开发:文件的读取

1 实验名称

       文件的读写

2 实验目的

       掌握Android中读写文件的实现方法。

3 实验源代码

布局文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><EditTextandroid:id="@+id/inputET"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入你想写入的内容"android:minLines="2"/><Buttonandroid:id="@+id/inputBtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="写入"/><EditTextandroid:id="@+id/outputET"android:layout_width="match_parent"android:layout_height="wrap_content"android:enabled="false"/><Buttonandroid:id="@+id/outputBtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="读取"/>
</LinearLayout>

Java代码:

package com.example.fileiotest;import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class MainActivity extends AppCompatActivity {private EditText inputET = null;private EditText outputET = null;private Button inputBtn = null;private Button outputBtn = null;private String fileName = "content.txt";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);inputET = findViewById(R.id.inputET);outputET = findViewById(R.id.outputET);inputBtn = findViewById(R.id.inputBtn);outputBtn = findViewById(R.id.outputBtn);inputBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {try {//将用户输入的信息写入到文件中String inputContent = inputET.getText().toString().trim();//创建输出流管道FileOutputStream fos = openFileOutput(fileName, Context.MODE_APPEND);//向文件中写入数据fos.write(inputContent.getBytes());inputET.setText("");fos.close();} catch (IOException e) {throw new RuntimeException(e);}}});outputBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {try {//从文件中读取数据//创建一个连接文件的输入流管道FileInputStream fis = openFileInput(fileName);//创建一个存放读取过来的数据是缓存数组byte[] bufffer = new byte[256];//创建可变长度的缓存字符串StringBuffer stringBuffer = new StringBuffer("");int hasRead = 0;//记录读取量while ((hasRead=fis.read(bufffer)) != -1){stringBuffer.append(new String(bufffer,0,hasRead));}outputET.setText(stringBuffer.toString());fis.close();} catch (IOException e) {throw new RuntimeException(e);}}});}}

4 实验运行结果图

5 实验总结

       第一步,写布局文件。主要是两个按钮,一个文本框,一个文本编辑框;两个按钮分别是写入和读取。

       第二步,写Java代码。关于写入,将用户输入的信息写入到文件中,创建输出流管道,向文件中写入数据;关于读取,从文件中读取数据,创建一个连接文件的输入流管道和一个存放读取过来的数据是缓存数组,创建可变长度的缓存字符串,记录下读取量。

       这个实验存在些许不足,个人认为主要是在于一次只能读取一个先前写入的内容,这个部分应该还可以继续优化。

http://www.lryc.cn/news/456623.html

相关文章:

  • Linux 中的 Makefile 伪目标详解
  • Java基础(中)
  • Leetcode热题100-200 岛屿数量
  • 大数据新视界 --大数据大厂之 GraphQL 在大数据查询中的创新应用:优化数据获取效率
  • swift使用代码结构解析
  • 五、Python基础语法(程序的输入和输出)
  • 【C语言】常见概念
  • Electron应用创建和打包
  • 代码随想录算法训练营第五六天| 99. 岛屿数量 100. 岛屿的最大面积
  • 图解 微信开发者工具 小程序源码 调试、断点标记方法 , 微信小程序调试器,真机调试断点调试方法,小程序网络API请求调试方法 总结
  • 注释,换行,控制台输入输出,命名空间,省略return语句
  • 宠物空气净化器该怎么选?希喂,小米、安德迈这三款好用吗?
  • 【Mybatis篇】Mybatis的注解开发
  • NEC协议
  • Meta 发布 Quest 3S 头显及 AR 眼镜原型:开启未来交互新视界
  • 【CSS】水平垂直居中
  • 欧盟零毁林法案 EUDR
  • 26.删除有序数组中的重复项
  • JAVA实现公众号扫码登录和关注功能实战
  • 初识Mysql/备份,基础指令
  • 没想到吧!线稿上色居然可以这么简单
  • 修改Docker的默认存储路径
  • 深入计算机语言之C++:C到C++的过度
  • HR面试篇
  • 深度探索Kali Linux的精髓与实践应用
  • 【在Linux世界中追寻伟大的One Piece】DNS与ICMP
  • 信息安全工程师(41)VPN概述
  • 算法:双指针系列(一)
  • 跟《经济学人》学英文:2024年09月28日这期 The curse of the Michelin star
  • Java Set 的介绍与实现原理