앱은 센서 데이터를 기록하고 .txt 파일에 데이터를 전화 SD 카드에 씁니다.Android - .txt 파일의 마지막 불완전한 줄 제거
데이터 수집 프로세스 중에는 언제든지 중지 버튼을 눌러 쓰기를 중지 할 수 있습니다. STOP 버튼을 누르면
myFile = new File("/sdcard/ResearchData/"
+ txtData.getText() + ".txt");
myFile.createNewFile();
fOut = new FileOutputStream(myFile);
myOutWriter = new OutputStreamWriter(fOut);
myBufferedWriter = new BufferedWriter(myOutWriter);
myPrintWriter = new PrintWriter(myBufferedWriter);
myPrintWriter.write(currentTime - startTime + " " + acceleration[0]
+ " " + acceleration[1] + " " + acceleration[2] + "\n");
되면, 다음과 같은 코드가 실행되어 다음과 같이
관련 쓰기 부분이다.
myOutWriter.close();
fOut.close();
코드는 괜찮 작동하지만, 유일한 문제는 하나를 누를 수 있기 때문에 언제든지 중지하는 것이, 그래서 .txt 파일의 마지막 행은 항상 완전하지 않습니다. 데이터 분석이 필요하기 때문에 데이터를 멋진 직사각형 행렬로 만들어야합니다. 따라서 마지막 불완전한 줄을 제거해야합니다. 내가 어떻게 할 수 있니?
또는 다른 각도에서이 질문을 해결하십시오. STOP 버튼을 쓰기 과정과 동 기적으로 만들 수 있습니까? 즉, 한 라인이 완전히 기록 된 후, STOP이 체크된다.
예, 내 가정에서 모든 가정이 유효합니다. 따라서 일단 정지 버튼을 누르면 모든 센서가 꺼져 onSensorChanged() 메서드가 호출되지 않습니다. 이렇게하면 마지막 줄의 데이터가 완전히 작성되었는지 확인할 수 있습니까? –
마지막 행이 기록 된 후 센서 리스너 등록을 취소하고 파일을 닫으므로 유효합니다. – faradaj