1. 文件的基本操作

  File类的相关技巧和操作:文件的创建、重命名和删除,文件夹的创建和删除等操作。

1 package control;
2
3 import java.io.File;
4
5 public class FileUtil {
6 public static final String FILE_NAME = "myfile.txt";
7 public static final String FOlDER_NAME = "NewFolder"+File.separator+"AnotherNewFolder";
8
9 }

FileUtil

 1 package control;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 public class CreatFile {
7 public static void main(String[] args) {
8 File file = new File(FileUtil.FILE_NAME);
9 if (!file.exists()) {
10 try {
11 file.createNewFile();
12 System.out.println("文件已经创建了");
13 } catch (IOException e) {
14 e.printStackTrace();
15 }
16 } else {
17 System.out.println("文件已经存在!");
18 System.out.println("文件名为:" + file.getName());
19 System.out.println("文件的绝对路径为:" + file.getAbsolutePath());
20 System.out.println("文件的相对路径为:" + file.getPath());
21
22 System.out.println("文件大小为: " + file.length() + "字节");
23 System.out.println("文件是否可读:" + file.canRead());
24 System.out.println("文件是否可写:" + file.canWrite());
25 }
26 }
27
28 }

CreatFile

 1 package control;
2
3 import java.io.File;
4
5 public class RenameFile {
6 public static void main(String[] args) {
7 File file = new File(FileUtil.FILE_NAME);
8 File newFile = new File("anotherFile.txt");
9 file.renameTo(newFile);
10 System.out.println(newFile);
11 System.out.println(file.getName());
12 }
13 }

RenameFile

 1 package control;
2
3 import java.io.File;
4
5 public class DeleteFile {
6 public static void main(String[] args) {
7 File file = new File(FileUtil.FILE_NAME);
8 if (file.exists()) {
9 file.delete();
10 System.out.println("文件已经被删除了!");
11 }
12 }
13
14 }

DeleteFile

 1 package control;
2
3 import java.io.File;
4
5 public class CreatFolder {
6
7 public static void main(String[] args) {
8 File folder = new File(FileUtil.FOlDER_NAME);
9 if (folder.exists() != true) {
10 folder.mkdirs();
11 }
12 }
13 }

CreatFolder

 1 package control;
2
3 import java.io.File;
4
5 public class RemoveFolder {
6 public static void main(String[] args) {
7 File folder = new File(FileUtil.FOlDER_NAME);
8 if (folder.exists()) {
9 folder.delete();
10 }
11 }
12
13 }

RemoveFolder

2. 读取Assets中的文件数据

  使用getResources().getAssets().open("filename")获取Assets文件夹中的文件数据流
。Assets文件夹在根目录下。注意使用UTF-8编码。

3. 读取raw目录中的文件数据

  getResources().openRawResource(fileid)方法获取raw文件夹中文件的数据流
。

 1 package com.example.readassets;
2
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.io.InputStreamReader;
7 import java.io.UnsupportedEncodingException;
8
9 import android.app.Activity;
10 import android.content.res.Resources.NotFoundException;
11 import android.os.Bundle;
12 import android.util.Log;
13 import android.view.View;
14
15 public class MainActivity extends Activity {
16
17 private static final String TAG = "ReadAssets";
18 private static final String TAG_RAW = "RawData";
19
20 @Override
21 protected void onCreate(Bundle savedInstanceState) {
22 super.onCreate(savedInstanceState);
23 setContentView(R.layout.activity_main);
24
25 findViewById(R.id.btnReadTxt).setOnClickListener(
26 new View.OnClickListener() {
27
28 @Override
29 public void onClick(View v) {
30 try {
31 // InputStream返回的是字节流,因此读取文本文件时,要包装成字符流
32 InputStream is = getResources().getAssets().open(
33 "info.txt");
34 InputStreamReader isr = new InputStreamReader(is,
35 "UTF-8");
36 BufferedReader bfr = new BufferedReader(isr);
37 String in = "";
38 while ((in = bfr.readLine()) != null) {
39 Log.i(TAG, in);
40 }
41 } catch (IOException e) {
42 e.printStackTrace();
43 }
44 }
45 });
46
47 findViewById(R.id.btnReadRaw).setOnClickListener(
48 new View.OnClickListener() {
49
50 @Override
51 public void onClick(View v) {
52 try {
53 InputStream is = getResources().openRawResource(
54 R.raw.info);
55 InputStreamReader isr = new InputStreamReader(is,
56 "UTF-8");
57 BufferedReader bfr = new BufferedReader(isr);
58 String inString = "";
59 while ((inString = bfr.readLine()) != null) {
60 Log.i(TAG_RAW, inString);
61 }
62 } catch (NotFoundException e) {
63 // TODO Auto-generated catch block
64 e.printStackTrace();
65 } catch (UnsupportedEncodingException e) {
66 // TODO Auto-generated catch block
67 e.printStackTrace();
68 } catch (IOException e) {
69 // TODO Auto-generated catch block
70 e.printStackTrace();
71 }
72
73 }
74 });
75 }
76
77 }

MainActivity

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:id="@+id/container"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 tools:context="com.example.readassets.MainActivity"
7 android:orientation="vertical"
8 tools:ignore="MergeRootFrame" >
9
10 <Button
11 android:id="@+id/btnReadTxt"
12 android:layout_width="fill_parent"
13 android:layout_height="wrap_content"
14 android:text="读取TXT数据" />
15
16 <Button
17 android:id="@+id/btnReadRaw"
18 android:layout_width="fill_parent"
19 android:layout_height="wrap_content"
20 android:text="读取RAW数据" />
21
22 </LinearLayout>

activity_main.xml

4. 读写内部存储的文件数据

  使用openFileOutput()方法获取内部文件的输出流与文件数据的写入,使用openFileInput()获取内部文件的输入流并将数据读取出来。

 1 package com.example.readwriteexternaldata;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8 import java.io.InputStreamReader;
9 import java.io.OutputStreamWriter;
10 import java.io.UnsupportedEncodingException;
11
12 import android.app.Activity;
13 import android.os.Bundle;
14 import android.os.Environment;
15 import android.view.View;
16 import android.widget.EditText;
17 import android.widget.TextView;
18 import android.widget.Toast;
19
20 public class MainActivity extends Activity {
21
22 private EditText editText;
23 private TextView txShow;
24 File sdcard = Environment.getExternalStorageDirectory();
25
26 @Override
27 protected void onCreate(Bundle savedInstanceState) {
28 super.onCreate(savedInstanceState);
29 setContentView(R.layout.activity_main);
30
31 editText = (EditText) findViewById(R.id.editText);
32 txShow = (TextView) findViewById(R.id.txShow);
33
34 findViewById(R.id.btnRead).setOnClickListener(new View.OnClickListener() {
35
36 @Override
37 public void onClick(View v) {
38 File myfile = new File(sdcard, "This is my file.txt");
39 if (myfile.exists()) {
40 FileInputStream fis;
41 try {
42 fis = new FileInputStream(myfile);
43 InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
44 char[] input = new char[fis.available()];
45 isr.read(input);
46 isr.close();
47 fis.close();
48 String inString = new String(input);
49 txShow.setText(inString);
50 } catch (FileNotFoundException e) {
51 e.printStackTrace();
52 } catch (UnsupportedEncodingException e) {
53 e.printStackTrace();
54 } catch (IOException e) {
55 e.printStackTrace();
56 }
57 }
58 }
59 });
60
61 findViewById(R.id.btnWrite).setOnClickListener(new View.OnClickListener() {
62
63 @Override
64 public void onClick(View v) {
65 File myfile = new File(sdcard, "This is my file.txt");
66 //如果手机有sd卡,才执行
67 if (!sdcard.exists()) {
68 Toast.makeText(getApplicationContext(), "当前系统不具备SD卡目录", Toast.LENGTH_LONG).show();
69 return;
70 }
71 try {
72 myfile.createNewFile();
73 Toast.makeText(getApplicationContext(), "文件创建完成!", Toast.LENGTH_LONG).show();
74 FileOutputStream fos = new FileOutputStream(myfile);
75 OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
76 osw.write(editText.getText().toString());
77 osw.flush();
78 osw.close();
79 fos.close();
80 Toast.makeText(getApplicationContext(), "文件写入完成!", Toast.LENGTH_LONG).show();
81
82 } catch (IOException e) {
83 e.printStackTrace();
84 }
85 }
86 });
87
88 }
89
90 }

MainActivity

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:id="@+id/container"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:orientation="vertical"
7 tools:context="com.example.readwriteexternaldata.MainActivity"
8 tools:ignore="MergeRootFrame" >
9
10 <EditText
11 android:id="@+id/editText"
12 android:layout_width="fill_parent"
13 android:layout_height="wrap_content"
14 android:text="输入要保存的数据"
15 android:textAppearance="?android:attr/textAppearanceLarge" />
16
17 <Button
18 android:id="@+id/btnWrite"
19 android:layout_width="fill_parent"
20 android:layout_height="wrap_content"
21 android:text="写入数据" />
22
23 <Button
24 android:id="@+id/btnRead"
25 android:layout_width="fill_parent"
26 android:layout_height="wrap_content"
27 android:text="读入数据" />
28
29 <TextView
30 android:id="@+id/txShow"
31 android:layout_width="fill_parent"
32 android:layout_height="wrap_content"
33 android:text="显示读到的数据"
34 android:textAppearance="?android:attr/textAppearanceLarge" />
35
36 </LinearLayout>

activity_main.xml

5. 读取外部存储的文件数据

  使用Environment.getExternalStorageDirectory()获取系统SD卡路径,并使用File类进行后续的操作。要获得相应的权限。

  点击"写入数据"Button,将上方EditText里面的内容写到文件"This is my file.txt"中;点击"读入数据"Button,将"This is my file.txt"中的内容显示在下面的TextView中。

 1 package com.example.readwriteinternaldata;
2
3 import java.io.FileInputStream;
4 import java.io.FileNotFoundException;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7 import java.io.InputStreamReader;
8 import java.io.OutputStreamWriter;
9 import java.io.UnsupportedEncodingException;
10
11 import android.app.Activity;
12 import android.content.Context;
13 import android.os.Bundle;
14 import android.view.View;
15 import android.widget.EditText;
16 import android.widget.TextView;
17 import android.widget.Toast;
18
19 public class MainActivity extends Activity {
20
21 private String fileName = "test";
22
23 private TextView txShow;
24 private EditText et;
25
26 @Override
27 protected void onCreate(Bundle savedInstanceState) {
28 super.onCreate(savedInstanceState);
29 setContentView(R.layout.activity_main);
30
31 et = (EditText) findViewById(R.id.et);
32 txShow = (TextView) findViewById(R.id.txShow);
33
34 findViewById(R.id.btnWrite).setOnClickListener(new View.OnClickListener() {
35
36 @Override
37 public void onClick(View v) {
38 try {
39 FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);
40 OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
41 osw.write(et.getText().toString());
42 //flush可以保证输出缓冲区的内容
43 //注意关闭顺序
44 osw.flush();
45 fos.flush();
46 osw.close();
47 fos.close();
48 Toast.makeText(getApplicationContext(), "写入完成", Toast.LENGTH_LONG).show();
49 } catch (FileNotFoundException e) {
50 e.printStackTrace();
51 } catch (UnsupportedEncodingException e) {
52 // TODO Auto-generated catch block
53 e.printStackTrace();
54 } catch (IOException e) {
55 // TODO Auto-generated catch block
56 e.printStackTrace();
57 }
58 }
59 });
60
61 findViewById(R.id.btnRead).setOnClickListener(new View.OnClickListener() {
62
63 @Override
64 public void onClick(View v) {
65 try {
66 FileInputStream fis = openFileInput(fileName);
67 InputStreamReader is = new InputStreamReader(fis, "UTF-8");
68 char input[] = new char[fis.available()];
69 is.read(input);
70 is.close();
71 fis.close();
72 String readed = new String(input);
73 txShow.setText(readed);
74
75 } catch (FileNotFoundException e) {
76 e.printStackTrace();
77 } catch (UnsupportedEncodingException e) {
78 // TODO Auto-generated catch block
79 e.printStackTrace();
80 } catch (IOException e) {
81 // TODO Auto-generated catch block
82 e.printStackTrace();
83 }
84 }
85 });
86 }
87
88 }

MainActivity

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:id="@+id/container"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:orientation="vertical"
7 tools:context="com.example.readwriteinternaldata.MainActivity"
8 tools:ignore="MergeRootFrame" >
9
10 <EditText
11 android:id="@+id/et"
12 android:layout_width="fill_parent"
13 android:layout_height="wrap_content"
14 android:text="在这里输入内容" />
15
16 <Button
17 android:id="@+id/btnWrite"
18 android:layout_width="fill_parent"
19 android:layout_height="wrap_content"
20 android:text="保存数据" />
21
22 <Button
23 android:id="@+id/btnRead"
24 android:layout_width="fill_parent"
25 android:layout_height="wrap_content"
26 android:text="读取数据" />
27
28 <TextView
29 android:id="@+id/txShow"
30 android:layout_width="fill_parent"
31 android:layout_height="wrap_content"
32 android:textAppearance="?android:attr/textAppearanceLarge" />
33
34 </LinearLayout>

activity_main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.example.readwriteinternaldata"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk
8 android:minSdkVersion="14"
9 android:targetSdkVersion="19" />
10
11 <application
12 android:allowBackup="true"
13 android:icon="@drawable/ic_launcher"
14 android:label="@string/app_name"
15 android:theme="@style/AppTheme" >
16 <activity
17 android:name="com.example.readwriteinternaldata.MainActivity"
18 android:label="@string/app_name" >
19 <intent-filter>
20 <action android:name="android.intent.action.MAIN" />
21
22 <category android:name="android.intent.category.LAUNCHER" />
23 </intent-filter>
24 </activity>
25 </application>
26
27 </manifest>

AndroidManifest.xml

15_Android文件读写操作的更多相关文章

  1. c语言文件读写操作总结

    C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...

  2. [转]Android - 文件读写操作 总结

     转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...

  3. PHP文件读写操作之文件写入代码

    在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发 ...

  4. Java 字节流实现文件读写操作(InputStream-OutputStream)

    Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...

  5. Java 字符流实现文件读写操作(FileReader-FileWriter)

    Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...

  6. python(三)一个文件读写操作的小程序

    我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...

  7. 实现动态的XML文件读写操作

    实现动态的XML文件读写操作(依然带干货) 前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义 ...

  8. ios 简单的plist文件读写操作(Document和NSUserDefaults)

    最近遇到ios上文件读写操作的有关知识,记录下来,以便以后查阅,同时分享与大家. 一,简单介绍一下常用的plist文件. 全名是:Property List,属性列表文件,它是一种用来存储串行化后的对 ...

  9. java文件读写操作类

    借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内 ...

随机推荐

  1. CF1413C Perform Easily 题解

    毒瘤C题,考场卡我1个小时 首先,这道题难点在哪里?它的最大值与最小值都是浮动的. 怎么办?把最小/最大值固定! 以把最小值固定为例,我们枚举每个音符,并枚举它使用哪条琴弦,将它此时的位置强制其作为最 ...

  2. electron 实现文件下载管理器

    文件下载是我们开发中比较常见的业务需求,比如:导出 excel. web 应用文件下载存在一些局限性,通常是让后端将响应的头信息改成 Content-Disposition: attachment; ...

  3. 什么是LRU缓存淘汰机制

    LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰.该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历 ...

  4. Docker学习笔记:Alpine镜像+Python3安装+http服务器

    编写Dockerfile文件使用最新的Alpine镜像并安装Python3环境,如下: 因为python高于3.4则不会默认安装pip,需要手动安装. 试了很多其他办法都没安装上,唯有下载get-pi ...

  5. ExecutorService的invokeAny方法注意

    package com.msxf.datasource.thirdpart.service.extface; import java.util.HashSet; import java.util.Li ...

  6. Moment.js的常见用法

    Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率.通常是用来获取时间,设置时间,格式化时间,比较时间等操作.  1.获取时间       St ...

  7. python中 try、except、finally 的执行顺序(转)

    def test1(): try: print('to do stuff') raise Exception('hehe') print('to return in try') return 'try ...

  8. Lamport面包店算法详解(转 侵删)

    范例1: boolean  choosing[n];表示进程是否在取号 int  number[n];记录每个进程取到的号码 这些数据结构分别初始化为false和0,为了方便,定义如下符号: 若a&l ...

  9. java服务器部署开源项目(若依)

    1准备工作 (1)阿里云 centos_8_0_x64_20G_alibase_20200218.vhd [root@iZ2zeeqw5fxmm9zagf439aZ ~]# cat /etc/redh ...

  10. sql sever 2008基础知识

    下面是一些总结,如果执行时发现错误,可以查看错误消息进行解决,也可上网查资料 数据库的组成: 主数据文件:有且只有一个,扩展名为.mdf. 次数据文件:可以没有,也可以有任意个.扩展名为.ndf. 日 ...