文件管理 · 2023年11月9日

android追加写文件|android 向data/data中的项目下写入文件

㈠ android sharedpreferences存储怎么以追加方式写入

SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:

㈡ Android如何在本地创建写入xls文件

1、一般情况下我们会用第三方的jar包来帮助实现,比如 jxl.jar , poi.jar点击下载开发需要的jar包2、开发的时候需要注意加上读写权限,尤其在Android 6.0 的时候需要动态去申请读写的权限[java] view plain <span style="font-size:12px;">if (ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST); } else { saveToExcel.writeToExcel(name,sex,phone,address); }</span> 权限回调[java] view plain <span style="font-size:12px;">@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == MY_PERMISSIONS_REQUEST) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { saveToExcel.writeToExcel(name,sex,phone,address); } else { // Permission Denied Toast.makeText(MainActivity.this, "Permission Denied", Toast.LENGTH_SHORT).show(); } return; } super.onRequestPermissionsResult(requestCode, permissions, grantResults); }</span> 3、指定Excel文件存放的文件夹,并为文件取名[java] view plain <span style="font-size:12px;">public static String getExcelDir() { // SD卡指定文件夹 String sdcardPath = Environment.getExternalStorageDirectory() .toString(); File dir = new File(sdcardPath + File.separator + "Excel" + File.separator + "Person"); if (dir.exists()) { return dir.toString(); } else { dir.mkdirs(); Log.e("BAG", "保存路径不存在,"); return dir.toString(); } </span> 在activity 中进行调用 :String excelPath = getExcelDir()+ File.separator+"demo.xls";4、将数据存入到Excel表中,在这里写了一个工具类saveToExcel(),具体代码如下[java] view plain <span style="font-size:12px;"> public class SaveToExcelUtil { private WritableWorkbook wwb; private String excelPath; private File excelFile; private Activity activity; public SaveToExcelUtil(Activity activity, String excelPath) { this.excelPath = excelPath; this.activity = activity; excelFile = new File(excelPath); createExcel(excelFile); } // 创建excel表. public void createExcel(File file) { WritableSheet ws = null; try { if (!file.exists()) { wwb = Workbook.createWorkbook(file); ws = wwb.createSheet("sheet1", 0); // 在指定单元格插入数据 Label lbl1 = new Label(0, 0, "姓名"); Label lbl2 = new Label(1, 0, "性别"); Label lbl3 = new Label(2, 0, "电话"); Label lbl4 = new Label(3, 0, "地址"); ws.addCell(lbl1); ws.addCell(lbl2); ws.addCell(lbl3); ws.addCell(lbl4); // 从内存中写入文件中 wwb.write(); wwb.close(); } } catch (Exception e) { e.printStackTrace(); } } //将数据存入到Excel表中 public void writeToExcel(Object… args) { try { Workbook oldWwb = Workbook.getWorkbook(excelFile); wwb = Workbook.createWorkbook(excelFile, oldWwb); WritableSheet ws = wwb.getSheet(0); // 当前行数 int row = ws.getRows(); Label lab1 = new Label(0, row, args[0] + ""); Label lab2 = new Label(1, row, args[1] + ""); Label lab3 = new Label(2, row, args[2] + ""); Label lab4 = new Label(3, row, args[3] + ""); ws.addCell(lab1); ws.addCell(lab2); ws.addCell(lab3); ws.addCell(lab4); // 从内存中写入文件中,只能刷一次. wwb.write(); wwb.close(); Toast.makeText(activity, "保存成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } }</span>

㈢ android中实现向sd卡中续写文件的问题:

用RandomAccessFile 访问你要写的文件,调用seek方法将写指针调整到已经写入的数据位置后面再继续write新数据,每写入一段数据记得保存写入的位置,方便断点续传的时候指定读取源文件位置和写本地文件的偏移位置。

㈣ Android: /sys/devices/platform 下写文件

一:开机logo ,在根路径7627a_splash下把图片放入,运行splash.sh文件然后再把splash.txt中的值复制粘帖在bootable/bootloader/lk/target/项目名/include/target/的splash.h文件中再make aboot把out/target/proct/项目名/下面(emmc_appsboot.mbn,emmc_appsboothd.mbn)这个是针对与emmc,或者是(appsboot.mbn,appsboothd.mbn)这个是针对nand。把这2个文件考出来,在window下用qts烧写进去。二:修改开关机动画把制作好的bootanimation.zip和shutdownanimation.zip放到 /system/core/rootdir/项目名/。可以直接push到机器的system/media下面,重启就可以看到效果三:判断项目名import android.os.SystemProperties;private boolean mIsA100 = "msm7627a_v12_a100".equals(SystemProperties.get("ro.proct.name"));if("1".equals(SystemProperties.get("persist.sys.emmcsdcard.enabled")))这是把内存设在为内部存储

㈤ Android开发之如何读写文件

【转】

首先介绍如何存储数据,显然,要将数据从应用中输出到文件中,必须得到一个输出流outPutStream,然后往输出流中写入数据,在这里Android自带了一个得到应用输出流的方法

FileOutputStream fos =context.openFileOutput(“yuchao.txt”,Context.MODE_PRIVATE); (1)

其中第一个属性为文件名,第二个属性为读写模式(有关读写模式的说明下面将详细阐述),

然后在文件输出流fos中便可以写入数据

Fos.write(“Hi,”I’m Chao Yu!”.getBytes());

用完文件输出流之后记得关闭

fos.close();

这样,在/data/data/packageName/file目录下就生成了一个文件名为yuchao.txt的文件,文件中的内容为” Hi,I’m Chao Yu!”

有关(1)中读写模式其实就是制定创建文件的权限以及在读写的时候的方式,Android中提供了以下几种读写模式

Context.MODE_PRIVATE = 0

该模式下创建的文件其他应用无权访问,并且本应用将覆盖原有的内容

Context.MODE_APPEND = 32768

该模式下创建的文件其他应用无权访问,并且本应用将在原有的内容后面追加内容

Context.MODE_WORLD_READABLE = 1

该模式下创建的文件其他应用有读的权限

Context.MODE_WORLD_WRITEABLE = 2

该模式下创建的文件其他应用有写的权限

如果需要将文件设置为外部应用可以读写,可将读写模式设置为Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE

一般情况下,各个应用维护的数据都在一个特定的文件夹中,即上面所提到的/data/data/packageName/file(存在于手机存储中),但手机内存毕竟有限,所以有些情况下,我们需要往SD卡中写入数据文件,这其实和普通的java web 应用步骤一样,都是先创建特针对特定目录特定文件的输出流,然后往输出流中写数据,这里要注意一个方法,就是获取SD卡根目录的方法,随着Android系统不断升级,SD卡的根目录随时都有可能改变,Android中得到SD卡根目录的方法是

File sdCardDir = Environment.getExternalStorageDirectory();

然后就可以进行下面的步骤

File saveFile = new File(sdCardDir, “yuchao.txt”);

FileOutputStream outStream = new FileOutputStream(saveFile);

outStream.write("Hi,I’m ChaoYu".getBytes());

outStream.close();

值得注意的是,在往SD卡中写数据的时候,健壮的代码必须考虑SD卡不存在或者写保护的情况,故在写入之前,先做判断

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

……

}

接着,我们来学习下我们的应用程序如何读取文件中的数据,其实就是写的逆向过程

若要读取应用程序默认维护的文件(即/data/data/packageName/file目录下的文件),首先得到文件输入流

FileInputStream istream = this.context.openFileInput(“yuchao.txt”);

然后在内存中开辟一段缓冲区

byte[] buffer = new byte[1024];

然后创建一个字节数组输出流

ByteArrayOutputStream ostream = new ByteArrayOutputStream();

读出来的数据首先放入缓冲区,满了之后再写到字符输出流中

while((len=istream.read(buffer))!=-1){

ostream.write(buffer, 0, len);

}

最后关闭输入流和输出流

istream.close();

ostream.close();

将得到的内容以字符串的形式返回便得到了文件中的内容了,这里的流操作较多,故以一张图片来说明,见图1

return new String(ostream.toByteArray());

从SD卡中读取数据与上述两个步骤类似,故不再赘述,留给读者自己思考

如在开发过程中进行SD卡地读写,切忌忘了加入权限

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

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

至此,Android系统中有关文件数据的读写介绍完毕。

㈥ Android写入txt文件

分以下几个步骤:

首先对manifest注册SD卡读写权限

AndroidManifest.xml<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="package="com.tes.textsd"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="16"/><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><applicationandroid:allowBackup="true"android:icon="@/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name="com.tes.textsd.FileOperateActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>

创建一个对SD卡中文件读写的类

FileHelper.java/***@Title:FileHelper.java*@Packagecom.tes.textsd*@Description:TODO(用一句话描述该文件做什么)*@authorAlex.Z*@date2013-2-26下午5:45:40*@versionV1.0*/packagecom.tes.textsd;importjava.io.DataOutputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.FileWriter;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importandroid.content.Context;importandroid.os.Environment;publicclassFileHelper{privateContextcontext;/**SD卡是否存在**/privatebooleanhasSD=false;/**SD卡的路径**/privateStringSDPATH;/**当前程序包的路径**/privateStringFILESPATH;publicFileHelper(Contextcontext){this.context=context;hasSD=Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);SDPATH=Environment.getExternalStorageDirectory().getPath();FILESPATH=this.context.getFilesDir().getPath();}/***在SD卡上创建文件**@throwsIOException*/publicFilecreateSDFile(StringfileName)throwsIOException{Filefile=newFile(SDPATH+"//"+fileName);if(!file.exists()){file.createNewFile();}returnfile;}/***删除SD卡上的文件**@paramfileName*/publicbooleandeleteSDFile(StringfileName){Filefile=newFile(SDPATH+"//"+fileName);if(file==null||!file.exists()||file.isDirectory())returnfalse;returnfile.delete();}/***写入内容到SD卡中的txt文本中*str为内容*/publicvoidwriteSDFile(Stringstr,StringfileName){try{FileWriterfw=newFileWriter(SDPATH+"//"+fileName);Filef=newFile(SDPATH+"//"+fileName);fw.write(str);FileOutputStreamos=newFileOutputStream(f);DataOutputStreamout=newDataOutputStream(os);out.writeShort(2);out.writeUTF("");System.out.println(out);fw.flush();fw.close();System.out.println(fw);}catch(Exceptione){}}/***读取SD卡中文本文件**@paramfileName*@return*/publicStringreadSDFile(StringfileName){StringBuffersb=newStringBuffer();Filefile=newFile(SDPATH+"//"+fileName);try{FileInputStreamfis=newFileInputStream(file);intc;while((c=fis.read())!=-1){sb.append((char)c);}fis.close();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}returnsb.toString();}publicStringgetFILESPATH(){returnFILESPATH;}publicStringgetSDPATH(){returnSDPATH;}publicbooleanhasSD(){returnhasSD;}}

写一个用于检测读写功能的的布局

main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:id="@+id/hasSDTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="hello"/><TextViewandroid:id="@+id/SDPathTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="hello"/><TextViewandroid:id="@+id/FILESpathTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="hello"/><TextViewandroid:id="@+id/createFileTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="false"/><TextViewandroid:id="@+id/readFileTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="false"/><TextViewandroid:id="@+id/deleteFileTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="false"/></LinearLayout>

就是UI的类了

FileOperateActivity.class/***@Title:FileOperateActivity.java*@Packagecom.tes.textsd*@Description:TODO(用一句话描述该文件做什么)*@authorAlex.Z*@date2013-2-26下午5:47:28*@versionV1.0*/packagecom.tes.textsd;importjava.io.IOException;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;{privateTextViewhasSDTextView;privateTextViewSDPathTextView;;;;;privateFileHelperhelper;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);hasSDTextView=(TextView)findViewById(R.id.hasSDTextView);SDPathTextView=(TextView)findViewById(R.id.SDPathTextView);FILESpathTextView=(TextView)findViewById(R.id.FILESpathTextView);createFileTextView=(TextView)findViewById(R.id.createFileTextView);readFileTextView=(TextView)findViewById(R.id.readFileTextView);deleteFileTextView=(TextView)findViewById(R.id.deleteFileTextView);helper=newFileHelper(getApplicationContext());hasSDTextView.setText("SD卡是否存在:"+helper.hasSD());SDPathTextView.setText("SD卡路径:"+helper.getSDPATH());FILESpathTextView.setText("包路径:"+helper.getFILESPATH());try{createFileTextView.setText("创建文件:"+helper.createSDFile("test.txt").getAbsolutePath());}catch(IOExceptione){e.printStackTrace();}deleteFileTextView.setText("删除文件是否成功:"+helper.deleteSDFile("xx.txt"));helper.writeSDFile("1213212","test.txt");readFileTextView.setText("读取文件:"+helper.readSDFile("test.txt"));}}

㈦ android10删除文件后写文件

android10删除文件后写文件如下1.将数据存储到文件中(文件默认存储到data/data/包名/files目录下)htmlpublic void save(String inputText) {//inputText为传入的要保存的数据FileOutputStream out = null;BufferedWriter writer = null;try {= openFileOutput(“data”, Context.MODE_APPEND);//”data”为文件名,第二个参数为文件操做模式:文件已经存在,就往文件里面追加类容,不重新建立文件。writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(inputText);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();2.从文件中读取数据android//读取数据= load();if (!TextUtils.isEmpty(inputText1)) {//非空判断,传入为null和空字符串时返回true//将数据展现到listview控件 );//android.R.layout.simple_list_item_1android内置子布adapter.add(inputText1);ListViewBattery5.setAdapter(adapter)。

㈧ android 在哪个文件中添加读写文件权限

<!–往sdcard中写入数据的权限 –><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!–在sdcard中创建/删除文件的权限 –><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

㈨ Android 中的文件读写操作

IO流(操作文件内容): 字节流 参考: AssetManager assets 文件夹用于存储应用需要的文件,在安装后可直接从其中读取使用或者写入本地存储中 Android Studio 默认不建立该文件夹,可以手动新建 : app -> src -> main -> assets 或者,右键 main -> New -> Folder -> Assets Folder AssetManager 对象可以直接访问该文件夹: 获取方法: 使用函数 open 可以打开 assets 文件夹中对象,返回一个 InputStream 对象: open 获取方法:

㈩ android 向data/data中的项目下写入文件。

不可以,访问其他进程,只能使用content provider 或者AIDL