学习Adnroid中有一段时间了,因为我不是在纯正的JAVA转到Android,我学习JAVA用了2个月,明白它多数的原理的时候,就跳到Android中,所以对Android中的一些方法还是不能很好的理解和运用,所以现在就从头复习总结一次。
《1》 //打开SDcard下目录的某个指定文件
// filename为指定的文件名
File file = newFile(Enviroment.getExternalStorageDirectory(),filename);
《2》判断SD卡是否存在并到/sdcard目录下
返回的String=/sdcard
private String isSdcard(){ FilesdcardDir=null; booleanisSDExist=Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); if(isSDExist){ //如果存在SDcard 就找到跟目录 sdcardDir=Environment.getExternalStorageDirectory(); returnsdcardDir.toString(); }else{ returnnull; } }
《3》获得某个目录下得所有文件列表
//打开文件夹 path为一个文件夹的路径 如:/sdcard
File file = new File(sdpath);
//获取该文件夹中文件目录列表
File[] files = file.listFiles();
//获得某个文件的文件名
String filename=file.getName();
//文件名中最后的一个.在文件名的位置
int idx =filename.lastIndexOf(".");
//获得filename的后缀名
Stringsuffer=filename.substring(idx+1,filename.length);
《4》根据给定的手机路径path 打开这个path中的文件并把它转变成Bitmap格式
FileInputStreamfis=new FileInputStream(path); BufferedInputStreambis=new BufferedInputStream(fis); Bitmapbitmap=BitmapFactory.decodeStream(bis);
《5》 将一个给定的网络地址URL中获取图片的byte[]
讲一个InputStream转化为一个byte[]
publicstatic byte[] readInputstream(InputStream inputStream) throws Exception{ byte[] buffer=new byte[1024]; int len; ByteArrayOutputStream BAOS=newByteArrayOutputStream(); while((len=inputStream.read(buffer))!=-1){ BAOS.write(buffer,0,len); } inputStream.close(); return BAOS.toByteArray(); }
再将一个URL中获取InputStream
publicstatic byte[] getImage(String path) throws Exception { //Stringpath1=ImageActivity.edit.getText().toString(); //URLurl = new URL(path1); path="http://s2.lashouimg.com/zt/201204/13/133429592467512700.jpg"; URLurl=new URL(path); HttpURLConnectionconn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5* 1000); InputStreaminStream = conn.getInputStream();//通过输入流获取图片数据 returnInputstreamtool.readInputstream(inStream);//得到图片的二进制数据 }
《6》将一个byte[]数据保存到SD卡目录里 byte[] data;//data是1.jpg的数据字节 Stringfilename="1.jpg"; Filefilelocal=new File(Environment.getExternalStorageDirectory(),filename); FileOutputStreamFos=new FileOutputStream(filelocal); Fos.write(data);
《7》关于文件夹读写权限 和保存方法在一下一个方法包中
http://115.com/file/e78hvqi0#Fileman.rar