0
好的,我正式對Android上的文件處理感到沮喪。我是新來的(只有幾天),所以我可能會錯過一些明顯的東西。我已成功地在每行上寫入了一個包含多個CSV數據的短文件。這不是問題;閱讀是。我開始與這(留下了異常處理和分析的清晰度):Android上的各種讀取線方法失敗
FileInputStream in = context.openFileInput("foo.txt");
InputStreamReader isr = new InputStreamReader(in);
BufferedReader buffreader = new BufferedReader(isr);
String inline;
while((inline = buffreader.readLine())!=null)
{
// parse CSV here
}
我讀線的時候有一個即時爲null。所以我重新開始工作,嘗試使用SO中的各種示例作爲模式讀取原始字節。我不會重現所有的失敗,但這樣的事情並沒有工作,要麼:
FileInputStream in = context.openFileInput("foo.txt");
InputStreamReader isr = new InputStreamReader(in);
BufferedReader buffreader = new BufferedReader(isr);
CharBuffer buff = CharBuffer.allocate(1024);
isr.read(buff);
String s = buff.toString();
調試表明,字符緩衝區和字符串消耗了人物,但他們是空白。那麼,如果有必要,我可以真正走向老派(我在十歲之前就用C編程)。以下工作:
FileInputStream in = context.openFileInput("foo.txt");
InputStreamReader isr = new InputStreamReader(in);
int c;
String foo = "";
while((c = isr.read())>=0)
foo += (char)c;
「FOO」設法把整個內容,我可以分裂和過程,但我不喜歡,它是如此粗糙。是的,它有效,但我想知道爲什麼其他人沒有。我試圖嚴格遵守SO中的各種例子,但沒有成功。
有關首次嘗試可能出錯的任何想法?
請提供foo.txt的文件 –
你爲我提供的代碼(第一位的,沒有看其他的人)是正確的。也許問題只是你不打開文件?文件位於何處?在資產文件夾中? – HpTerm
Yeah..openFileInput用於內部存儲(應用程序包).so我相信你的文件不存在。 –