GeekBand-다섯째 주
sharedPreferences는 무엇입니까?
데이터의 지속화이다. 바로 데이터를 저장하는 것이다.간단한 데이터 저장
// XML , preference_name Shard_Prefs
SharedPreferences mSharedPreferences = ListViewDemoActivity.this.getSharedPreferences("preference_name",Context.MODE_PRIVATE);
SharedPreferences.Editor mEditor = mSharedPreferences.edit();
mEditor.putInt("list_view_data_counts",dataCounts);
//data/data
mEditor.commit();//
이상은 데이터를 저장하는 것이다. 만약에 저장된 데이터를 추출해야 한다면
SharedPreferences mSharedPreferences = ListViewDemoActivity.this.getSharedPreferences("preference_name",Context.MODE_PRIVATE);
mDataCounts = mSharedPreferences.getInt("list_view_data_counts);
수정은 다른 값을 다시 전달하는 것이다
mEditor.putInt("list_view_data_counts",dataCounts+1);
삭제하면 mEditor.remove();
PS: 최적mEditor.apply();
커밋... 때문에
mEditor.apply();// , , UI
// , IO ,
파일 관리
getFilesDir (): 우리 앱의 인터넷 디렉터리를 대표하는 File를 되돌려줍니다.
getCacheDir (): 저희 앱의 인터넷 캐시 디렉터리를 대표하는 File을 되돌려줍니다.
private void testFileDemo(){
// text.txt, internal
File file = new File(getFilesDir(),"text.txt");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
파일에 데이터를 다시 쓰기
try {
FileOutputStream fileOutputStream = openFileOutput("text.txt", Context.MODE_PRIVATE);
try {
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
sd카드 디렉터리에 있는 파일 조작
void testSDcard(){
File file = new File("/sdcard/text/a.txt");
String tempFile = Environment.getExternalStorageDirectory().getAbsolutePath();
Environment.getDataDirectory();// android data
Environment.getDownloadCacheDirectory();//
}
assets 디렉터리에 있는 파일 조작하기
void testAssets{
//
WebView webView = new WebView(this);
webView.loadUrl("file://android_asset/test.html");
try {
//open
getResources().getAssets().open("test.html");//
} catch (IOException e) {
e.printStackTrace();
}
//
try {
String[] fileNames = getAssets().list("images");
} catch (IOException e) {
e.printStackTrace();
}
InputStream inputStream = null;
try {
//
inputStream = getAssets().open("images/dog.jpg");
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
ImageView imageView = new ImageView(this);
imageView.setImageBitmap(bitmap);
//
AssetFileDescriptor assetFileDescriptor = getAssets().openFd("libai.mp3");
MediaPlayer player = new MediaPlayer();
player.reset();
player.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength());
player.prepare();
player.start();
} catch (IOException e) {
e.printStackTrace();
}
}
res 디렉터리에 있는 파일 조작하기
void testResFile(){
InputStream inputStream = getResources().openRawResource(R.raw.libai);
getResources().getColor(R.color.colorAccent);
}
raw 디렉터리에 있는 파일 조작
res
PS:asset과raw의 공통점 assets와raw는 2진법으로 컴파일되지 않으며 모두 포장됩니다
assets는 그대로 있습니다.raw는 R.java 파일에 비치기 때문에 id로 접근할 수 있습니다