내 코드에 이상한 점이 있습니다. 파일을 열어 생성 된 문자열 (시간에 따라 달라짐)을 첨부하여 나중에 사용할 수 있도록하려고합니다. 내 응용 프로그램에서는이 문제가 한 번 이상 발생하지만, 이번에는 내가보고 싶은 결과를 제공하지 않습니다. 명확히하기 위해 :Android OutputStreamWriter는 UTF-8이 아닌 문자를 씁니다.
을 내 클래스 내부에 다음과 같은 코드를 사용하고 있습니다 :
private static final String ARRANGED_TXT = "arranged_txt.txt";
ArrangedTxtAsString
은 다음과 같습니다 문자열입니다 :
try {
OutputStreamWriter oos = new OutputStreamWriter(context.openFileOutput(ARRANGED_TXT, Context.MODE_PRIVATE));
oos.write(ArrangedTxtAsString);
oos.close();
}
catch(FileNotFoundException e){
Log.e("File Error", "File not found: " + e.toString());
}
및 ARRANGED_TXT
을로 정의되는
Banana
Pineapple
Orange
Coconut
Strawberry
StringBuilder를 사용하여 만들었습니다.
이제 문제는, 생성 된 파일은 다음과 같습니다이다 :
다른 프로그램이 동일한 결과를 제공으로 그것은, ++ 메모장에 문제가 아니에요. 언급해야 할 중요한 점은 텍스트가 UTF-8이 아닌 문자로 구성되어있는 것처럼 보일지라도 나머지 프로그램에서도 완벽하게 처리된다는 것입니다. 이것은 조금 이상하게 들릴지 모르겠지만 내가 말하고자하는 것은 코드가 잘 작동하고 있다는 것입니다.하지만 문제는 텍스트 편집기를 통해 표시된 텍스트가 해당 텍스트와 일치하는지 않습니다. 봐. 알다시피, 나는 꽤 완전 주의자이며, 그래서 그것이 고쳐 지길 원한다. 이것은 미래에 문제가 될 수도 있습니다 (디버깅 등).
편집 :
문자열에 포함 된 중요하지 않는 것 같습니다 : 단일 문자, 숫자, 또는 무엇이든을, 그것은 똑같은 결과를 준다. 심지어 ""
을 작성하면 이상한 문자가 표시됩니다!
나는 누군가가 여기에서 무슨 일이 일어나고 있는지 알고 있기를 바랍니다. 미리 감사드립니다.
'oos.write (ArrangedTxtAsString.toString()); '을 의미 했습니까? – Natecat
'ArrangedTxtAsString'은 이미'ArrangedTxtAsString = stringBuilder.toString();'으로 정의되어 있기 때문에 이미 문자열이어야합니다.'stringBuilder'는 단지'StringBuilder'의 인스턴스입니다. 이 사실을 알면이 방법도 효과가 없습니다. 어쨌든, 정말 도와 주셔서 감사합니다! ;) – PythonPupil1906
'OutputStreamWriter'는 실제로 텍스트를 출력하는 데 적합하지 않습니다. 대신에'BufferedWriter'를 사용해야합니다. – Natecat