마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 파일 쓰기 읽기(txt파일생성)

0 추천

//파일쓰기

String sFileName = "loginData.txt";
String sDirPath = "";
String sLoginInfo = phoneNumber+"/asd123";
 
try {
sDirPath = m_context.getFilesDir().getCanonicalPath();
 
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
 
 
File file = new File(sDirPath);
 
Toast.makeText(m_context.getApplicationContext(),"파일경로:"+sDirPath, Toast.LENGTH_SHORT).show();
 
if(!file.exists())
{
file.mkdirs();
Toast.makeText(m_context.getApplicationContext(),"successMakeFolder", Toast.LENGTH_SHORT).show();
}
 
File fLoginInfo = new File(sDirPath+sFileName);
 
try {
FileOutputStream fOut = new FileOutputStream(fLoginInfo);
try {
fOut.write(sLoginInfo.getBytes());
fOut.close();
Toast.makeText(m_context.getApplicationContext(),"파일수:"+file.listFiles().length, Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
 
위 코드는 파일 쓰기부분입니다. 상대경로로 저장하는 부분이고, 어플 실행시 
fOut.write(sLoginInfo.getBytes());
fOut.close();
Toast.makeText(m_context.getApplicationContext(),"파일수:"+file.listFiles().length, Toast.LENGTH_SHORT).show();
까지는 잘 실행 됩니다. 하지만 파일수는 0으로 뜨죠.
 
여기서 문제가 생깁니당. 파일읽을때 읽어오지를 못하는군요.
아래는 참고만 하셔도 될 부분입니다.(읽어오는 코드)
//파일 읽기
if(file.listFiles().length > 0)
{
for(File f : file.listFiles())
{
String sfileName = f.getName();
 
String sloadPath = sDirPath+"/"+sfileName;
 
try {
FileInputStream fIn = new FileInputStream(sloadPath);
BufferedReader bfReader = new BufferedReader(new InputStreamReader(fIn));
 
String sContent = "";
String sTemp = "";
 
try {
while((sTemp = bfReader.readLine()) != null)
{
sContent += sTemp;
}
Log.v(null, ""+sContent);
Toast.makeText(m_context.getApplicationContext(),sContent, Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
애초에 파일 생성하고 
fOut.write(sLoginInfo.getBytes());
fOut.close();
Toast.makeText(m_context.getApplicationContext(),"파일수:"+file.listFiles().length, Toast.LENGTH_SHORT).show();
한뒤에 파일 갯수가 0이기때문에 읽지를 못합니다.
 
왜 파일이 저장이안되는걸까요..
 
제가 전체적으로 이해를 못한부분이 많아서 잘모르겠습니다. 많은 답변부탁드릴게요 ㅠ
 
 

 

뇽뇽이2841 (1,120 포인트) 님이 2014년 10월 7일 질문

1개의 답변

0 추천
File fLoginInfo = new File(sDirPath+sFileName);
익명사용자 님이 2014년 10월 7일 답변
당신은 천재인가..?

참고로 답변전에 발견했습니당..

sDirPath+"/"+sFileName
...