<?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;
		}
	}
}


파일을 추가할수도있다




+ Recent posts