Android从SD卡中加载图片或读取信息
16lz
2022-05-25
[java] view plain copy
- packagecom.xplus.mytxttest;
- importjava.io.ByteArrayOutputStream;
- importjava.io.File;
- importjava.io.FileInputStream;
- importjava.io.FileNotFoundException;
- importjava.io.FileOutputStream;
- importjava.io.IOException;
- importjava.io.InputStream;
- importandroid.app.Activity;
- importandroid.content.Context;
- importandroid.graphics.Bitmap;
- importandroid.graphics.BitmapFactory;
- importandroid.os.Bundle;
- importandroid.os.Environment;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.EditText;
- importandroid.widget.ImageView;
- importandroid.widget.TextView;
- importandroid.widget.Toast;
- publicclassActivitySdCardextendsActivity{
- privateButtonbtn_write;
- privateButtonbtn_read;
- privateEditTextedit_write;
- privateTextViewview_read;
- privateTextViewtext_info;
- privateImageViewimg_image1;
- privateImageViewimg_image2;
- privateImageViewimg_image3;
- privateImageViewimg_image4;
- privateImageViewimg_image5;
- privateTextViewtext_image1;
- privateTextViewtext_image2;
- privateTextViewtext_image3;
- privateTextViewtext_image4;
- privateTextViewtext_image5;
- privateintflag=0;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- //TODOAuto-generatedmethodstub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main_sd);
- init();
- System.out.println("CodeEncoding:"+getCodeEncoding());
- if(Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED)){
- Filefile=newFile(Environment.getExternalStorageDirectory(),
- "my.txt");
- try{
- FileInputStreaminStream=newFileInputStream(file);
- //内存中开辟一段缓冲区
- byte[]buffer=newbyte[1024];
- //创建一个字节输出流
- ByteArrayOutputStreamoutStream=newByteArrayOutputStream();
- //读取出来的数据首先放入缓冲去,,满了之后再写到字符输出流
- intlen;
- while((len=inStream.read(buffer))!=-1){
- outStream.write(buffer,0,len);
- }
- inStream.close();
- outStream.close();
- System.out.println(outStream.toString());
- String[]arrStr=outStream.toString().split("-");
- queryPic(arrStr);
- }
- catch(Exceptione){
- //TODO:handleexception
- }
- btn_read.setOnClickListener(newOnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- try{
- FilesdCardDir=Environment
- .getExternalStorageDirectory();
- System.out.println(sdCardDir.toString());
- if(Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED)){
- FilereadFile=newFile(sdCardDir,"my.txt");
- FileInputStreamistream=newFileInputStream(
- readFile);
- //内存中开辟一段缓冲区
- byte[]buffer=newbyte[1024];
- //创建一个字节输出流
- ByteArrayOutputStreamostream=newByteArrayOutputStream();
- //读取出来的数据首先放入缓冲去,,满了之后再写到字符输出流
- intlen;
- while((len=istream.read(buffer))!=-1){
- ostream.write(buffer,0,len);
- }
- ostream.close();
- istream.close();
- StringtxtStr=ostream.toString();
- view_read.setText(txtStr);
- }
- }catch(FileNotFoundExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- });
- btn_write.setOnClickListener(newOnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- try{
- System.out.println("write");
- FilesdCardDir=Environment
- .getExternalStorageDirectory();
- System.out.println(Environment
- .getExternalStorageState());
- if(Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED)){
- System.out.println("write");
- FilesaveFile=newFile(sdCardDir,"my.txt");
- FileOutputStreamfos=newFileOutputStream(
- saveFile);
- fos.write(edit_write.getText().toString()
- .getBytes());
- fos.close();
- Toast.makeText(ActivitySdCard.this,"写入成功",
- Toast.LENGTH_SHORT).show();
- }
- }catch(FileNotFoundExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- });
- }
- }
- privatevoidinit(){
- btn_read=(Button)findViewById(R.id.button_sd_read);
- btn_write=(Button)findViewById(R.id.button_sd_write);
- edit_write=(EditText)findViewById(R.id.editText_sd_edit);
- view_read=(TextView)findViewById(R.id.textView_sd_text);
- text_info=(TextView)findViewById(R.id.textView_sd_info);
- img_image1=(ImageView)findViewById(R.id.imageView_sd_image1);
- img_image2=(ImageView)findViewById(R.id.imageView_sd_image2);
- img_image3=(ImageView)findViewById(R.id.imageView_sd_image3);
- img_image4=(ImageView)findViewById(R.id.imageView_sd_image4);
- img_image5=(ImageView)findViewById(R.id.imageView_sd_image5);
- text_image1=(TextView)findViewById(R.id.textView_sd_text1);
- text_image2=(TextView)findViewById(R.id.textView_sd_text2);
- text_image3=(TextView)findViewById(R.id.textView_sd_text3);
- text_image4=(TextView)findViewById(R.id.textView_sd_text4);
- text_image5=(TextView)findViewById(R.id.textView_sd_text5);
- }
- privatevoidqueryPic(String[]str){
- img_image1.setImageBitmap(BitmapFactory.decodeFile(str[flag]));
- text_image1.setText("名称:"+str[++flag]+"\n价格:"+str[++flag]);
- img_image2.setImageBitmap(BitmapFactory.decodeFile(str[++flag]));
- text_image2.setText("名称:"+str[++flag]+"\n价格:"+str[++flag]);
- img_image3.setImageBitmap(BitmapFactory.decodeFile(str[++flag]));
- text_image3.setText("名称:"+str[++flag]+"\n价格:"+str[++flag]);
- img_image4.setImageBitmap(BitmapFactory.decodeFile(str[++flag]));
- text_image4.setText("名称:"+str[++flag]+"\n价格:"+str[++flag]);
- img_image5.setImageBitmap(BitmapFactory.decodeFile(str[++flag]));
- text_image5.setText("名称:"+str[++flag]+"\n价格:"+str[++flag]);
- }
- privateStringgetCodeEncoding(){
- Stringcode="gb2312";
- try{
- InputStreaminputStream=newFileInputStream(
- Environment.getExternalStorageDirectory()+"/my.txt");
- byte[]head=newbyte[3];
- inputStream.read(head);
- if(head[0]==-1&&head[1]==-2){
- code="UTF-16";
- }
- if(head[0]==-2&&head[1]==-1){
- code="Unicode";
- }
- if(head[0]==-17&&head[1]==-69&&head[2]==-65){
- code="UTF-8";
- }
- }catch(FileNotFoundExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- returncode;
- }
- @Override
- protectedvoidonDestroy(){
- //TODOAuto-generatedmethodstub
- super.onDestroy();
- }
- }
xml
[html] view plain copy
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <Button
- android:id="@+id/button_sd_write"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="write"/>
- <Button
- android:id="@+id/button_sd_read"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="read"/>
- </LinearLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <EditText
- android:id="@+id/editText_sd_edit"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:ems="10"
- android:inputType="textPersonName">
- <requestFocus/>
- </EditText>
- </LinearLayout>
- <TextView
- android:id="@+id/textView_sd_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="读取的内容"/>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <TableLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center">
- <TableRow
- android:id="@+id/tableRow1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- <ImageView
- android:id="@+id/imageView_sd_image1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_action_search"/>
- <ImageView
- android:id="@+id/imageView_sd_image2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_action_search"/>
- <ImageView
- android:id="@+id/imageView_sd_image3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_action_search"/>
- <ImageView
- android:id="@+id/imageView_sd_image4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_action_search"/>
- <ImageView
- android:id="@+id/imageView_sd_image5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_action_search"/>
- </TableRow>
- <TableRow
- android:id="@+id/tableRow2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- <TextView
- android:id="@+id/textView_sd_text1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="1"
- android:textSize="20dip"/>
- <TextView
- android:id="@+id/textView_sd_text2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="2"
- android:textSize="20dip"/>
- <TextView
- android:id="@+id/textView_sd_text3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="3"
- android:textSize="20dip"/>
- <TextView
- android:id="@+id/textView_sd_text4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="4"
- android:textSize="20dip"/>
- <TextView
- android:id="@+id/textView_sd_text5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="5"
- android:textSize="20dip"/>
- </TableRow>
- </TableLayout>
- </LinearLayout>
- <TextView
- android:id="@+id/textView_sd_info"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="图片描述信息"/>
- </LinearLayout>
如果要读取txt中的信息,可以用BufferedReader实现一行一行的读取,然后将读取的数据添加到一个List中,再通过List获取需要的数据即可。
[java] view plain copy
- Filefile=newFile(firstPath+secondPath+thirdPath[flag],
- "/akinndo.txt");
- BufferedReaderreader=newBufferedReader(newFileReader(file));
- Stringr=reader.readLine();
- while(r!=null){
- String[]informations=r.split(",");
- Map<String,String>map=newHashMap<String,String>();
- map.put("dir",firstPath+informations[0]);
- map.put("description",informations[1]);
- list.add(map);
- r=reader.readLine();
- }
更多相关文章
- Android得到SD卡文件夹大小以及删除文件夹操作
- android读取扫码模组数据的方法
- Android判断下载File是否为apk文件
- android 读取资源字符串的 方法
- Android(安卓)获取手机号码
- Android(安卓)读取sdcard指定目录文件
- Android从远程服务器下载文件到本地sd卡中
- (转)Android软件测试的日志文件抓取简介
- 读取Activity/Processes的PID(Android)