文件的读写 和获取应用市场的名称

package com.cardvlaue.sys.util;

import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.provider.ContactsContract;
import android.text.TextUtils;
import android.util.Base64;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.StreamCorruptedException;
import java.util.List;
import java.util.Map;

/**
 * <p>写文件和读取文件<p/>
 * Created by Administrator on 2016/8/10.
 */
public class ReadUtil {
    //文件的目录和路径
    private final static String PATH = "/sdcard/digu";
    private final static String FILENAME = "/notes.txt";

    /**
     * 向sdcard写文件
     * 写文件
     */
    @SuppressWarnings("all")
    public static void write(String str) {
        try {
            //1.判断是否存在sdcard
            if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
                //目录
                File path = new File(PATH);
                //文件
                File f = new File(PATH + FILENAME);
                if (!path.exists()) {
                    //2.创建目录,可以在应用启动的时候创建
                    path.mkdirs();
                }
                if (!f.exists()) {
                    //3.创建文件
                    f.createNewFile();
                } else if (f.exists()) {
                    f.delete();
                    f.createNewFile();
                }
                OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(f));
                //4.写文件,从EditView获得文本值
                osw.write(str);
                osw.close();
            }
        } catch (Exception e) {
        }

    }

    /*
     * 写文件
     */
    public static String read() {
        //文件
        File f = new File(PATH + FILENAME);
        if (!f.exists()) {
            return null;
        }
        FileInputStream is = null;
        try {
            is = new FileInputStream(f);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            byte[] array = new byte[1024];
            int len;//int len=-1;
            while ((len = is.read(array)) != -1) {
                bos.write(array, 0, len);
                bos.close();
                is.close();
                return bos.toString();
            }
        } catch (IOException e) {
            e.printStackTrace();
            try {
                is.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            return null;
        }
        return null;
    }


    /**
     * 获取应用市场的名称
     * @param context
     * @param keyName
     * @return
     */
    public static String readKey(Context context, String keyName) {
        try {
            ApplicationInfo app = context.getPackageManager().getApplicationInfo(
                    context.getPackageName(), PackageManager.GET_META_DATA);
            Bundle bundle = app.metaData;
            String value = bundle.getString(keyName);
            return value;
        } catch (PackageManager.NameNotFoundException ex) {
            return null;
        }
    }


    /**
     * 获取Email
     * @param contentResolver
     * @param map
     * @param sb
     * @param contactId
     */
    public  static void putEmail(ContentResolver contentResolver, Map<String,Object> map, StringBuilder sb, String contactId){
        //查询Email类型的数据操作
        Cursor emails = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId,
                null, null);
        if(emails==null)  return;
        String moveTo=""+emails.moveToNext();
        if(moveTo.equals("false")){
            map.put("email","");
        }
        while (emails.moveToNext())
        {
            String emailAddress = emails.getString(emails.getColumnIndex(
                    ContactsContract.CommonDataKinds.Email.DATA));

            //添加Email的信息
            map.put("email", emailAddress);

            sb.append(",Email=").append(emailAddress);
        }
        emails.close();
    }

    /**
     * 获取Adress
     * @param contentResolver
     * @param map
     * @param sb
     * @param contactId
     */
    public static void putAdress(ContentResolver contentResolver,Map<String,Object> map,StringBuilder sb,String contactId){

        //查询==地址==类型的数据操作.StructuredPostal.TYPE_WORK
        Cursor address = contentResolver.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = " + contactId,
                null, null);
        if(address==null) return;
        String moveToAddress=address.moveToNext()+"";
        if(moveToAddress.equals("false")){
            map.put("address","");
        }
        while (address.moveToNext())
        {
            String workAddress = address.getString(address.getColumnIndex(
                    ContactsContract.CommonDataKinds.StructuredPostal.DATA));


            //添加Email的信息
            sb.append(",address").append(workAddress);
            map.put("address", workAddress);
        }
        address.close();
    }

    /**
     * 获取Company(公司)
     * @param contentResolver
     * @param map
     * @param sb
     * @param contactId
     * @param id
     */
    public static void putCompany(ContentResolver contentResolver,Map<String,Object> map,StringBuilder sb,String contactId,String id) {
        //查询==公司名字==类型的数据操作.Organization.COMPANY  ContactsContract.Data.CONTENT_URI
        String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
        String[] orgWhereParams = new String[]{id,
                ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE};
        Cursor orgCur = contentResolver.query(ContactsContract.Data.CONTENT_URI,
                null, orgWhere, orgWhereParams, null);
        if(orgCur==null) return;
        String moveToorgCur=orgCur.moveToNext()+"";
        if(moveToorgCur.equals("false")){
            map.put("company","");
        }
        if (orgCur.moveToFirst()) {
            //组织名 (公司名字)
            String company = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA));
            //职位
            String title = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE));
            sb.append(",company").append(company);
            sb.append(",title").append(title);
            map.put("company", company);
            //map.put("title", title);
        }
        orgCur.close();
    }




    /**
     * 压缩图片
     * @param options
     * @param minSideLength
     * @param maxNumOfPixels
     * @return
     */
    public static int computeSampleSize(BitmapFactory.Options options,
                                        int minSideLength, int maxNumOfPixels) {
        int initialSize = computeInitialSampleSize(options, minSideLength,
                maxNumOfPixels);

        int roundedSize;
        if (initialSize <= 8) {
            roundedSize = 1;
            while (roundedSize < initialSize) {
                roundedSize <<= 1;
            }
        } else {
            roundedSize = (initialSize + 7) / 8 * 8;
        }

        return roundedSize;
    }

    private static int computeInitialSampleSize(BitmapFactory.Options options,
                                                int minSideLength, int maxNumOfPixels) {
        double w = options.outWidth;
        double h = options.outHeight;

        int lowerBound = (maxNumOfPixels == -1) ? 1 : (int) Math.ceil(Math
                .sqrt(w * h / maxNumOfPixels));
        int upperBound = (minSideLength == -1) ? 128 : (int) Math.min(Math
                .floor(w / minSideLength), Math.floor(h / minSideLength));

        if (upperBound < lowerBound) {
            // return the larger one when there is no overlapping zone.
            return lowerBound;
        }

        if ((maxNumOfPixels == -1) && (minSideLength == -1)) {
            return 1;
        } else if (minSideLength == -1) {
            return lowerBound;
        } else {
            return upperBound;
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值