1.读取 Asserts文件夹中的文件
InputStream is = getResources().getAsserts().open("Asserts文件夹下的文件名");
InputStreamReader isr=new InputStreamReader(is , "UTF-8" );
BufferedReader br=new BufferedReader(isr);
String str="";
StrigBuffer sb==new StringBuffer();
while((str=br.readLine())!=null)
{
sb.append(str);
}
PS:不是在Activity下
context.getResources()
2.读取Raw文件夹下的文件
在 res 文件夹下创建一个名为 Raw 的文件夹, 我一般把大的图片放在raw文件下.
InputStream is = getResources().openRawResource( R.raw.info ); //info 为文件名
InputStreamReader isr=new InputStreamReader(is, "UTF-8");
BufferedReader br=new BufferedReader(isr);
String str="";
StrigBuffer sb==new StringBuffer();
while((str=br.readLine())!=null)
{
sb.append(str);
}
取出大图片
public static Bitmap getBitmap(int rawResource){
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
InputStream is = Global.globalContext.getResources().openRawResource(rawResource);
Bitmap bitmap = BitmapFactory.decodeStream(is,null, opt);
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
PS:不是在Activity下 context.getResources()
3.安卓内部存储的文件数据
String fileName="test";
/* 一、 写入 */
FileOutputStream fos = openFileOutput( filename, Content.MODE_PRIVATE); //写入模式为私有的
OutputStreamWriter osw=new OutputStreamWriter(fos, "UTF-8" );
osw.writeString("fadsfdasfasfsdafasfdasfasdfasdf名字啊!");
osw.flush();
fos.flush();
osw.close()
fos.close();
/* 二、读取 */
FileInputStream fis = openFileInput( fileName );
InputStreamReader isr = new InputStreamReader( fis , "UTF-8" );
char[] input=new char[ fis.available() ];
isr.read(input);
isr.close();
fis.close();
System.out.println( input.toString() );
PS:不是在Activity下 context.openFileOutput()
4.安卓外部存储的文件数据–读取
File sdcard = Environment.getExternalStorageDirectory(); //获取SDCard的路径
File myFile=new File ( scdrd, "TextFolder" ); //后面,为名字
if( ! sdcard.exists( ) )
{
//不存在SDCard
}
myFile.createNewFile();
// 写入
FileOutputStream fos = new FileOutputStream(myFile);
OutputStreamWriter osw = new OutputStreamWitter(fos, "UTF-8");
osw.witer("afadsfdasfa");
osw.flush();
osw.close();
fos.close();
5.SharedPreferences 数据
支持的数据类型
- int
- boolear
- float
- long
- String
SharedPreferences 读写操作
SharedPrefences prefences =getPreferences(Activity.MODE_PRIVATE);
Editor editor = prefences.edit();
String key="myValue";
editor.putString( myValue, "123456");
editor.putInt("ab", 1)
editor.putFloat("flos" ,2.4 );
boolear ok = editor.commit();
if(ok)
{ 输出成功 }
else
{ 输出失败 }
读取
SharedPrefences prefences =getPreferences(Activity.MODE_PRIVATE);
String str = preferences.getString(key, "数值不存在时的默认值" );
int i=preferences.getInt("ab", 0 );
float f = preferences.getFloat("flos" , 0.0f );
PreferencesActiviry的sdcard 存储的
File sdcard = Environment.getExternalStroageDirectory () ;
File myFile = new File (sdcard ,"fileName.txt") ; //文件名
//注意权限.....android.permission.WRITE_EXTEAGE_STORAGE....
if( !sdcard.exists())
{
//没有内存卡
return ;
}
FIleInputStream fis = new FileInputSteam(myFile);
InputStreamReader isr = new InputStreamReader(fis ,"UTF-8" );
专业的”Setting”
- PreferenceActivity
- PreferenceScreen
6.数据库
class db extends SQLiteOpenHelper
{
//构造方法
public db(Context context,String name,CursorFactoty factory ,int version)
{}
@override
oncreate(SQLiteDatabase dbs)
{
db.execSQL("create table "+"sqlname"+"(name text,path text,)")
}
@override
public void onUpgrade()
{
}
}
7.获取未安装的APK信息
public Drawable getApkIcon(Context context, String apkPath)
{
PackageManager pm = context.getPackageManager();
PackageInfo info=pm.getPackageArchiveInfo(apkPath,PackageManager.GET_ACTIVITIES);
if(info != null)
{
ApplicationInfo appInfo = info.applicationInfo;
appInfo.sourceDir = apkPath;
appInfo.publicSourceDir = apkPath;
try
{
String label = appInfo.loadLabel(pm).toString();
Log.e("应用中文名:", label);
String packageName = appInfo.packageName;
Log.e("包名:", packageName);
return appInfo.loadIcon(pm);
}
catch(OutOfMemoryError e)
{
Log.e("ApkIconLoader", e.toString());
}
}
return null;
}