2017-09-23 2 views
1

"fav.txt"파일에 텍스트 데이터를 추가하려고합니다. 한 항목 만 파일에 추가하고 나열 할 수 있습니다. 하나 이상의 항목을 파일 및 목록에 추가하려면 어떻게합니까? 이것은 파일에 항목을 추가하는 코드입니다.openFileOutput은 데이터를 가져 오지만 나열하지 않습니다.

private void writeToFile(String data,Context context) { 
    try { 

     FileOutputStream outputStream; 
     outputStream = openFileOutput("fav.txt", Context.MODE_PRIVATE); 
     outputStream.write(data.getBytes()); 
     outputStream.close(); 
    } 
    catch (IOException e) { 
     Log.e("Exception", "File write failed: " + e.toString()); 
    } 
} 

이 코드는 파일

public List<String> listele(Context context) throws FileNotFoundException { 
     InputStream inputstream=context.openFileInput("fav.txt"); 
     List<String> listem=new ArrayList<>(); 
    try{ 
     InputStreamReader readeer=new InputStreamReader(inputstream); 
     BufferedReader reader=new BufferedReader(readeer); 
     String line; 
     while((line=reader.readLine())!=null) 
     { 
      listem.add(line); 
     } 
     reader.close(); 
     return listem; 
    } 
    catch (Exception e) 
    { 

     e.printStackTrace(); 
     return null; 
    } 
} 

에서 읽기는하지만, 단 하나 개의 항목을 반환 작품? 이 코드를 수정하려면 어떻게해야합니까? 나는 당신과 비슷한 코드를 확인했습니다

+0

파일에 정확히 무엇을 저장 하시겠습니까? –

+0

@DimaKozhevin 사용자가 단추를 클릭 할 때 edittext의 텍스트 항목 만 – omer1596

+0

여러 문자열을 작성 하시겠습니까? 파일에서 모든 데이터를 읽는가? –

답변

0

: 입력 파일이 포함 example.txt

public static List<String> listele(String fileName) throws FileNotFoundException { 
    InputStream inputstream = new FileInputStream(fileName); 
    List<String> listem = new ArrayList<>(); 
    try { 
     InputStreamReader readeer = new InputStreamReader(inputstream); 
     BufferedReader reader = new BufferedReader(readeer); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      listem.add(line); 
     } 
     reader.close(); 
     return listem; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 

:

line1 
line2 

반환 목록 크기 EQ가 있습니다. 2, 아마도 파일에는 한 줄만 포함되어있을 것입니다.

+0

답장을 보내 주셔서 감사합니다.하지만 여전히 작동하지 않습니다.이 메시지가 나타납니다. "fav.txt : open failed : ENOENT 같은 파일이나 디렉토리가 없다) "그리고 나는 .txt를 사용하지 않고 동일한 오류가 발생했습니다. – omer1596

+0

파일 이름이 올바른지 확인하십시오. 제 경우에는 _src/test/resources/example.txt_입니다. 테스트 리소스 폴더 –

+0

에서로드했습니다. /data/data/com.project.readerone/files/fav에로드 중이 었습니다. 테스트 파일이 여기에없는 것을 확인했습니다. 내 파일 – omer1596

관련 문제