GeekBand-다섯째 주

sharedPreferences 및 파일 관리
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로 접근할 수 있습니다

좋은 웹페이지 즐겨찾기