最近做一个读取SD卡上信息的小程序 调试了半天没弄好 代码发出来 求解 package com.localpiclist;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;import com.model.PicInfo;
import com.utils.FileUtils; public class LocalPicListActivity extends ListActivity {
private List<PicInfo> picInfos = null; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); } protected void onResume(){
FileUtils fileutils=new FileUtils();
List<PicInfo> picInfos=fileutils.getPicFiles("pic/");
List<HashMap<String,String>>list=new ArrayList<HashMap<String,String>>();
for(Iterator iterator=picInfos.iterator();iterator.hasNext();){
PicInfo picInfo=(PicInfo) iterator.next();
HashMap<String,String> map=new HashMap<String,String>();
map.put("pic_name", picInfo.getPicName());
map.put("pic_size", picInfo.getPicSize());
list.add(map);
}
SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.picinfo_item,
new String[]{"pic_name","pic_size"},new int[]{R.id.pic_name,R.id.pic_size});
setListAdapter(simpleAdapter);
}
}
package com.model;public class PicInfo {
private String id;
private String picName;
private String picSize;
public String getId() {
return id;
}
public void setPicName(String picName) {
this.picName = picName;
} public void setPicSize(String picSize) {
this.picSize = picSize;
} public String getPicName() {
return picName;
} public String getPicSize() {
return picSize;
} public void setId(String id) {
this.id = id;
} public PicInfo() {
super();
}
public String toString() {
return "PicInfo [id=" + id + ", PicName=" + picName + ", PicSize="+ picSize+"]";
} public String getMp3Name() {
return picName;
} public PicInfo(String id, String picName, String picSize ) {
super();
this.id = id;
this.picName =picName;
this.picSize = picSize;
}
}
package com.utils;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;import android.os.Environment;import com.model.PicInfo;public class FileUtils {
private static final String SDCRoot = null;
private String SDPATH; public String getSDPATH() {
return SDPATH;
}
public FileUtils() {
//得到当前外部存储设备的目录
// /SDCARD
SDPATH = Environment.getExternalStorageDirectory() + "/";
}
/**
* 在SD卡上创建文件
*
* @throws IOException
*/
public File creatSDFile(String fileName) throws IOException {
File file = new File(SDPATH + fileName);
file.createNewFile();
return file;
}
/**
* 在SD卡上创建目录
*
* @param dirName
*/
public File creatSDDir(String dirName) {
File dir = new File(SDPATH + dirName);
dir.mkdirs();
return dir;
} /**
* 判断SD卡上的文件夹是否存在
*/
public boolean isFileExist(String fileName){
File file = new File(SDPATH + fileName);
return file.exists();
}
/**
* 将一个InputStream里面的数据写入到SD卡中
*/
public File write2SDFromInput(String path,String fileName,InputStream input){
File file = null;
OutputStream output = null;
try{
creatSDDir(path);
file = creatSDFile(path + fileName);
output = new FileOutputStream(file);
byte buffer [] = new byte[4 * 1024];
while((input.read(buffer)) != -1){
output.write(buffer);
}
output.flush();
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
output.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return file;
}
//读取SDK上文件信息
public List<PicInfo> getPicFiles(String path){
List<PicInfo> picInfos=new ArrayList<PicInfo>();
File file=new File(SDCRoot+File.separator+path);
File[] files=file.listFiles();
for(int i=0;i<files.length;i++){
if(files[i].getName().endsWith("jpg")){
PicInfo picInfo=new PicInfo();
picInfo.setPicName(files[i].getName());
picInfo.setPicSize(files[i].length()+"");
picInfos.add(picInfo);
}
}
return picInfos;
}
}
picinfo_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<view
android:id="@+id/pic_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<view
android:id="@+id/pic_size"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
</LinearLayout>
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;import com.model.PicInfo;
import com.utils.FileUtils; public class LocalPicListActivity extends ListActivity {
private List<PicInfo> picInfos = null; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); } protected void onResume(){
FileUtils fileutils=new FileUtils();
List<PicInfo> picInfos=fileutils.getPicFiles("pic/");
List<HashMap<String,String>>list=new ArrayList<HashMap<String,String>>();
for(Iterator iterator=picInfos.iterator();iterator.hasNext();){
PicInfo picInfo=(PicInfo) iterator.next();
HashMap<String,String> map=new HashMap<String,String>();
map.put("pic_name", picInfo.getPicName());
map.put("pic_size", picInfo.getPicSize());
list.add(map);
}
SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.picinfo_item,
new String[]{"pic_name","pic_size"},new int[]{R.id.pic_name,R.id.pic_size});
setListAdapter(simpleAdapter);
}
}
package com.model;public class PicInfo {
private String id;
private String picName;
private String picSize;
public String getId() {
return id;
}
public void setPicName(String picName) {
this.picName = picName;
} public void setPicSize(String picSize) {
this.picSize = picSize;
} public String getPicName() {
return picName;
} public String getPicSize() {
return picSize;
} public void setId(String id) {
this.id = id;
} public PicInfo() {
super();
}
public String toString() {
return "PicInfo [id=" + id + ", PicName=" + picName + ", PicSize="+ picSize+"]";
} public String getMp3Name() {
return picName;
} public PicInfo(String id, String picName, String picSize ) {
super();
this.id = id;
this.picName =picName;
this.picSize = picSize;
}
}
package com.utils;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;import android.os.Environment;import com.model.PicInfo;public class FileUtils {
private static final String SDCRoot = null;
private String SDPATH; public String getSDPATH() {
return SDPATH;
}
public FileUtils() {
//得到当前外部存储设备的目录
// /SDCARD
SDPATH = Environment.getExternalStorageDirectory() + "/";
}
/**
* 在SD卡上创建文件
*
* @throws IOException
*/
public File creatSDFile(String fileName) throws IOException {
File file = new File(SDPATH + fileName);
file.createNewFile();
return file;
}
/**
* 在SD卡上创建目录
*
* @param dirName
*/
public File creatSDDir(String dirName) {
File dir = new File(SDPATH + dirName);
dir.mkdirs();
return dir;
} /**
* 判断SD卡上的文件夹是否存在
*/
public boolean isFileExist(String fileName){
File file = new File(SDPATH + fileName);
return file.exists();
}
/**
* 将一个InputStream里面的数据写入到SD卡中
*/
public File write2SDFromInput(String path,String fileName,InputStream input){
File file = null;
OutputStream output = null;
try{
creatSDDir(path);
file = creatSDFile(path + fileName);
output = new FileOutputStream(file);
byte buffer [] = new byte[4 * 1024];
while((input.read(buffer)) != -1){
output.write(buffer);
}
output.flush();
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
output.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return file;
}
//读取SDK上文件信息
public List<PicInfo> getPicFiles(String path){
List<PicInfo> picInfos=new ArrayList<PicInfo>();
File file=new File(SDCRoot+File.separator+path);
File[] files=file.listFiles();
for(int i=0;i<files.length;i++){
if(files[i].getName().endsWith("jpg")){
PicInfo picInfo=new PicInfo();
picInfo.setPicName(files[i].getName());
picInfo.setPicSize(files[i].length()+"");
picInfos.add(picInfo);
}
}
return picInfos;
}
}
picinfo_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<view
android:id="@+id/pic_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<view
android:id="@+id/pic_size"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
</LinearLayout>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货