<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button3" /> </LinearLayout> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:contentDescription="텍스트를 출력할 뷰" /> </LinearLayout> </ScrollView> </LinearLayout>
package com.gusfree.fileio; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.http.util.ByteArrayBuffer; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; public class FileIoActivity extends Activity implements OnClickListener{ TextView tv; Button btn1,btn2,btn3; ByteArrayBuffer bab; ListView lv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //뷰찾고 리스너 세팅하기 tv=(TextView) findViewById(R.id.textView1); lv=(ListView)findViewById(R.id.listView1); btn1=(Button) findViewById(R.id.button1); btn2=(Button) findViewById(R.id.button2); btn3=(Button) findViewById(R.id.button3); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); } int i=0; @Override public void onClick(View v) { switch(v.getId()){ case R.id.button1: //text파일 내용읽어서 화면출력 //Res폴더/raw/test.txt 가져오기 InputStream is = getResources().openRawResource(R.raw.text); int k=0; // read() 메서드는 한 바이트씩 읽어서 리턴, // 더이상 읽을 내용이 없으면 -1을 리턴합니다. bab=new ByteArrayBuffer(50); try{ //while( ( k=is.read() )!= -1 ){ for( ; ; ) { k=is.read(); if(k==-1){ break; } bab.append(k); } // 다 읽었다. //바이트배열버퍼 -> 스트링으로 변환시키기 byte[] b = bab.toByteArray(); String content = new String(b); tv.setText(content); }catch(Exception e){ } break; case R.id.button2: //읽은 데이터를 파일로 저장하기 i++; FileOutputStream fos = null; try { fos = this.openFileOutput("test"+i+".txt",Activity.MODE_PRIVATE); fos.write(bab.toByteArray()); //save fos.flush() ; // option 버퍼를 비워라 fos.close(); // required 닫아라. } catch (Exception e) { // window/ open perspective/ DDMS 추가 // DDMS / Explorer / data/data/패키지/files/ } finally{ try{ if(fos!=null) fos.close(); } catch(Exception e){ } } break; case R.id.button3://저장된 파일 가져오기 // /data/data/패키지 이름/files/test1.txt File file=new File("data/data/com.gusfree.fileio/files/"); //안에 들은 파일을 파일 배열로 return File[] fileList = file.listFiles(); //파일 수만큼 파일 이름을 담을 수 있는 String 배열 생성 String[] fileNames=new String[fileList.length]; for(int i=0;i<fileNames.length;i++){ //파일의 이름만 배열에 저장하자 fileNames[i] =fileList[i].getName(); } //간단한 어뎁터 ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,fileNames); lv.setAdapter(adapter); break; } } }
파일을 추가할수도있다
'Android > 2012.04월 강좌' 카테고리의 다른 글
8일차 Service (음악 파일 재생) (0) | 2012.05.07 |
---|---|
8일차 숙제 (0) | 2012.05.07 |
8일차 FileIO 2 - 읽은 데이터를 파일로 저장하기(DDMS) (0) | 2012.05.07 |
8일차 FileIO - text파일 내용읽어서 화면출력 (2) | 2012.05.07 |
8일차 Draw 3 TouchEvent (0) | 2012.05.07 |