2011-11-05 3 views
0

저장 한 텍스트 줄의 시작 부분에 .txt 파일을 추가하는 방법은 어떻게됩니까? 예.안드로이드 - 엔트리 nember

  • 01, 항목 하나
  • 02, 항목이
  • 03, 항목 세

그래서 여기

의 파일

public void onClick(View v) {try { 
      BufferedWriter out = new BufferedWriter(new  FileWriter("/sdcard/input_data.txt", true)); 
      out.write(txtData.getText() + "," + dateFormat.format(new Date())); 
      out.close(); 
에 쓸 수있는 내 코드입니다

답변

0

개체에 카운터 필드가 있습니다. w 를 증가 그 값을 항목이 작성 될 때마다 의례와 :

private int entryCounter = 1; 

public void onClick(View v) { 
    try { 
     BufferedWriter out = new BufferedWriter(new FileWriter("/sdcard/input_data.txt", true)); 
     out.write(counter + ", " + txtData.getText() + "," + dateFormat.format(new Date())); 
     entryCounter++; 
    ... 

당신은 항상 finally 블록에서 작가를 닫아야합니다, 몇 가지 예외가 발생하더라도 닫혀 있는지 확인.

+0

짧지 만 달콤한! 이것은 대단히 감사합니다. – Leigh8347

0

당신은 독자에게 쓰고 줄마다 읽고 쓰는 문자열을 감쌀 것이라고 생각합니다.

BufferedReader reader = new BufferedReader(new StringReader(txtData.getText())); 
BufferedWriter writer = new BufferedWriter(new FileWriter("/sdcard/input_data.txt", true)); 

//... Loop as long as there is input. 
int lineNumber = 0; 
String line = null; 
while ((line=reader.readLine()) != null) { 
    writer.write(lineNumber++ + ", " + line); 
    writer.newLine(); // Write new line - "\n" on Android. 
} 

//... Close reader and writer. 
reader.close(); 
writer.close(); 

분명히 당신은 try/catch 성명에서 위의 코드를 넣고 finally 블록에 독자와 작가를 닫아야합니다.

public void onClick(View v) { 
    Utils.appendLog(this, txtData.getText() + "," + dateFormat.format(new Date()); 
} 

을 그리고 이러한 방법으로의 Utils 클래스를 만들 :

0
은 다음과 같이 뭔가에 온 클릭 방법을 변경

public class Utils { 
public static void appendLog(Context ctx, String text) { 
     File logFile = new File(ctx.getFilesDir(), Constants.YOUR_FILENAME); 
     if (!logFile.exists()) { 
      try { 
       logFile.createNewFile(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     try { 
      // BufferedWriter for performance, true to set append to file flag 
      BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true)); 
      buf.append(Utils.generateId(ctx) + "," + text); 
      buf.newLine(); 
      buf.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public static int generateId(Context ctx) { 
     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); 
     int id = prefs.getInt("MyId", 1); 
     Editor e = prefs.edit(); 
     e.putInt("MyId", id +1); 
     e.commit(); 
     return id; 
    } 
}