listview+baseadapter 读取sd卡中的目录 并修改文件保存文件
来源:互联网 发布:淘宝店需要办营业执照 编辑:程序博客网 时间:2024/05/16 19:04
我借鉴了 一个读取sd卡文件的fileutils 的类 并把它作为一个单例 对象
读取sd卡需要如下权限
<!-- SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 向SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
如图
package com.example.xiaoxiong;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import android.os.Environment;public class FileUtils {private String SDCardRoot; private String filename; public File filedir; private static FileUtils instance; public static FileUtils getInstace(){ if(instance == null){ instance= new FileUtils(); } return instance; }private FileUtils() {SDCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath() + "/";System.out.println("SD dir:" + SDCardRoot);File dirFile = new File(SDCardRoot + "demo" + File.separator);System.out.println("creat dir:" + dirFile.mkdirs());filedir = dirFile;}public File createFileInSDCard(String fileName, String dir)throws IOException {File file = new File(SDCardRoot + dir + File.separator + fileName);file.createNewFile();return file;} public List<File> data= new ArrayList<File>(); public List<File> getAllFiles(File dir,int level){ level++; File[] files = dir.listFiles(); data.clear(); for(int i = 0; i < files.length; i++){// if(files[i].isDirectory()){// //这里用了递归// getAllFiles(files[i],level);// }else{// data.add(files[i]);// } data.add(files[i]); } return data; }public File createSDDir(String dir) {File dirFile = new File(SDCardRoot + dir + File.separator);System.out.println("creat dir:" + dirFile.mkdirs());filedir = dirFile;return dirFile;}public String readerFile( File name){ StringBuffer sb = new StringBuffer(); try { BufferedReader br = new BufferedReader(new FileReader(name)); String readline = ""; while ((readline = br.readLine()) != null) { sb.append(readline); } br.close(); System.out.println("读取成功:" + sb.toString()); } catch (Exception e) { e.printStackTrace(); }return sb.toString(); }public void deleteFile(File name){if (name.exists()){name.delete();}}public boolean isFileExist(String fileName, String path) {File file = new File(SDCardRoot + path + File.separator + fileName);return file.exists();}public File write2SDFromString(String path, String fileName,String input) {File file = null;OutputStream output = null;try {createSDDir(path);file = createFileInSDCard(fileName, path);output = new FileOutputStream(file);//byte buffer[] = new byte[4 * 1024];//int temp;//while ((temp = input.read(buffer)) != -1) {//output.write(buffer, 0, temp);//}output.write(input.getBytes());output.flush();} catch (Exception e) {e.printStackTrace();} finally {try {output.close();} catch (Exception e) {e.printStackTrace();}}return file;}public File write2SDFromInput(String path, String fileName,InputStream input) {File file = null;OutputStream output = null;try {createSDDir(path);file = createFileInSDCard(fileName, path);output = new FileOutputStream(file);byte buffer[] = new byte[4 * 1024];int temp;while ((temp = input.read(buffer)) != -1) {output.write(buffer, 0, temp);}output.flush();} catch (Exception e) {e.printStackTrace();} finally {try {output.close();} catch (Exception e) {e.printStackTrace();}}return file;}}
MainActivity
package com.example.xiaoxiong;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { private ListView lv; public TextListAdapter adapter ; private static List<Map<String,Object>>data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.text_layout); lv = (ListView)findViewById(R.id.List_text); //获取数据绑定到data中 data = getData(); adapter = new TextListAdapter(this, data); lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) { Bundle bundle = new Bundle(); bundle.putString("NameText",((TextView)view.findViewById(R.id.text_name)).getText().toString() ); bundle.putString("content",((TextView)view.findViewById(R.id.text_info)).getText().toString() ); Intent intent =new Intent(MainActivity.this,TextActivity.class); intent.putExtras(bundle); startActivityForResult(intent,10);}}); } @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(resultCode == 20){adapter.refresh(getData());Toast.makeText(this,"t", 3000).show();}}private List<Map<String,Object>> getData(){ List<Map<String,Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map; FileUtils d = FileUtils.getInstace();// File hh[] = new File[10];// if(d.filedir == null){// hh[0] = d.write2SDFromString("demo", "summer0", "i love you 0");// hh[1] = d.write2SDFromString("demo", "summer1", "i love you 1");// hh[2] = d.write2SDFromString("demo", "summer2", "i love you 2");// } List<File>data = new ArrayList<File>(); data = d.getAllFiles(d.filedir, 0); for(int i=0;i<data.size();i++) { map = new HashMap<String, Object>(); map.put("title", data.get(i).getName()); map.put("info",d.readerFile(data.get(i))); list.add(map); } return list; }}
TextListAdapter
package com.example.xiaoxiong;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { private ListView lv; public TextListAdapter adapter ; private static List<Map<String,Object>>data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.text_layout); lv = (ListView)findViewById(R.id.List_text); //获取数据绑定到data中 data = getData(); adapter = new TextListAdapter(this, data); lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) { Bundle bundle = new Bundle(); bundle.putString("NameText",((TextView)view.findViewById(R.id.text_name)).getText().toString() ); bundle.putString("content",((TextView)view.findViewById(R.id.text_info)).getText().toString() ); Intent intent =new Intent(MainActivity.this,TextActivity.class); intent.putExtras(bundle); startActivityForResult(intent,10);}}); } @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(resultCode == 20){adapter.refresh(getData());Toast.makeText(this,"t", 3000).show();}}private List<Map<String,Object>> getData(){ List<Map<String,Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map; FileUtils d = FileUtils.getInstace();// File hh[] = new File[10];// if(d.filedir == null){// hh[0] = d.write2SDFromString("demo", "summer0", "i love you 0");// hh[1] = d.write2SDFromString("demo", "summer1", "i love you 1");// hh[2] = d.write2SDFromString("demo", "summer2", "i love you 2");// } List<File>data = new ArrayList<File>(); data = d.getAllFiles(d.filedir, 0); for(int i=0;i<data.size();i++) { map = new HashMap<String, Object>(); map.put("title", data.get(i).getName()); map.put("info",d.readerFile(data.get(i))); list.add(map); } return list; }}
TextActivity
package com.example.xiaoxiong;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class TextActivity extends Activity {private TextView txtname;private EditText txt;private Button sure,modify; FileUtils d = FileUtils.getInstace();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.text_eg);Intent intent = getIntent();Bundle bundle = intent.getExtras();txtname = (TextView)findViewById(R.id.text_txt);txtname.setText(bundle.getString("NameText"));txt = (EditText)findViewById(R.id.editText1);txt.setText(bundle.getString("content"));sure = (Button)findViewById(R.id.button_sure);modify = (Button)findViewById(R.id.button_notify);sure.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {d.write2SDFromString("demo", txtname.getText().toString(), txt.getText().toString());setResult(20);finish();}});modify.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {}});}}
1 0
- listview+baseadapter 读取sd卡中的目录 并修改文件保存文件
- 文件下载并保存至SD卡
- android捕获异常并保存到sd卡文件目录里
- 读取按照自己的规则保存到sd卡中的字节文件
- C#读取,修改并保存html文件——实例
- android,保存文件到sd卡和读取
- Android读取SD卡文件并显示到textview中
- vc读取文件,修改写入,保存文件
- Android 读取目录中的文件列表并展示
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- Python-读取目录所有文件的文件名并保存到txt文件
- 读取并修改 config 文件
- Android 文件操作 sd卡保存文件
- 读取sd卡 文件内容
- android 读取SD卡文件
- android sd卡文件读取
- 【Educational Codeforces Round 2B】【map or 二分查找】Queries about less or equal elements b[]中的每个数比a[]中多少数大
- hpuoj--校赛--送给新生的礼物(水题)
- Android Glide源码解析
- 存储过程的简化--只记录了问题--项目结束后一并优化
- 网页设计大赛第十三天
- listview+baseadapter 读取sd卡中的目录 并修改文件保存文件
- junit.framework.AssertionFailedError: No tests found in JUnit.test at junit junit.framework.Asserti
- DynamoRIO 系列二: 实例小测
- 布局变化时的动画
- SVN服务器以及客户端安装和使用
- 关于 Spring 中使用 context:property-placeholder 属性占位符设置配置文件
- 伍德里奇计量经济学导论之计算机操作题的R语言实现(一些重要专题)
- 通过利用引用型数据和基本型数据的区别可以判断出数据的类型是否是引用型的String为例
- Android实现OTG功能