Assets의 텍스트 파일 불러오기
21 Mar 2017 | Android AssetsAssets 폴더에 들어있는 텍스트 파일의 내용을 String으로 읽는 코드입니다.
Android Studio 기준으로 Assets 폴더는 /app/src/main/assets에 위치하며,
네비게이션 뷰를 Project로 설정한 다음 폴더를 추가하면 됩니다.
본 예제는 텍스트 파일을 읽어오는 코드이지만, 다른 파일들에도 적용할 수 있습니다.
예제 코드는 다음과 같습니다.
PolicyActivity.java
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.widget.TextView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import com.lnc.cuppadata.R;
import com.lnc.cuppadata.gui.account.RegistrationActivity;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class PolicyActivity extends AppCompatActivity {
@BindView(R.id.policy_view)
protected TextView policyView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_policy);
ButterKnife.bind(this);
loadPolicy();
}
@OnClick(R.id.ok)
protected void onOkButtonPressed() {
Intent intent = new Intent(PolicyActivity.this, RegistrationActivity.class);
startActivity(intent);
finish();
}
@OnClick(R.id.cancel)
protected void onCancelButtonPressed() {
finish();
}
private void loadPolicy() {
try {
String policy = readFromAssets("policy.txt");
policyView.setText(Html.fromHtml(policy));
} catch(Exception e) {
e.printStackTrace();
}
}
private String readFromAssets(String filename) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open(filename)));
StringBuilder sb = new StringBuilder();
String line = reader.readLine();
while(line != null) {
sb.append(line);
line = reader.readLine();
}
reader.close();
return sb.toString();
}
}