사용한 툴 : 이클립스

사용 버전 : API 16

첨푸 파일 : AndRawTest.zip



안드로이드 프로젝트의 /res/raw 폴더에 필요한 파일을 저장해서 사용하는 방법도 있다. 단 쓰기는 되지않고 읽기만 가능하다.

이 때는 FileInputStream 클래스 대신 InputStream 클래스를 사용하면 된다.

처음 프로젝트를 생성하면 폴더가 안보이는데 개발자가 /res에 raw폴더를 생성해주면 된다. 


▲프로젝트 내에 폴더 생성하는 방법




activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.andrawtest.MainActivity"
    android:orientation="vertical" >
 
    <Button
        android:id = "@+id/btnRead"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="읽기"/>
    <EditText 
        android:id = "@+id/edtRaw"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:lines="10"/>
    
</LinearLayout>
 
cs


MainActivity.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
package com.example.andrawtest;
 
import java.io.IOException;
import java.io.InputStream;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends Activity {
    Button btnRead;
    EditText edtRaw;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnRead=(Button)findViewById(R.id.btnRead);
        edtRaw = (EditText)findViewById(R.id.edtRaw);
        
        btnRead.setOnClickListener(new OnClickListener() {        
            @Override
            public void onClick(View v) {
                InputStream inputS = getResources().openRawResource(R.raw.file);
                try {
                    byte[] temp =new byte[inputS.available()];
                    inputS.read(temp);
                    inputS.close();
                    edtRaw.setText(new String(temp));
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
        });
    }
}
 
cs


29 먼저 리소스를 얻고 거기서 Raw리소스를 얻어오는 형식으로 파일을 가져온다.

31 temp를 파일크기만큼의 배열을 생성한다.

34 edtRaw에 temp를 넣기위해 String형태로 변환해준다. 안보이는데 개발자가 /res에 raw폴더를 생성해주면 된다.


AndRawTest.zip


+ Recent posts