我正在編寫一個讀取設備上存儲的小文件的黑莓應用程序。 出於某種原因,DataInputStream將只讀取大於3kb的文件(經過幾次測試後我的估計)。任何人都知道爲什麼會出現這種情況?DataInputStream不讀取小文件
try
{
fconn = (FileConnection)Connector.open(seedDataLocation);
if (fconn.exists())
{
UiApplication.getUiApplication().getActiveScreen().add(new RichTextField("Read?: " + fconn.canRead()));
UiApplication.getUiApplication().getActiveScreen().add(new RichTextField("Write?: " + fconn.canWrite()));
UiApplication.getUiApplication().getActiveScreen().add(new RichTextField("Open?: " + fconn.isOpen()));
int dataSize = (int) fconn.fileSize();
DataInputStream dis = fconn.openDataInputStream();
UiApplication.getUiApplication().getActiveScreen().add(new RichTextField("Data Available: " + dataSize));
byte[] b = new byte[dataSize];
dis.readFully(b);
String data = new String(b);
UiApplication.getUiApplication().getActiveScreen().add(new RichTextField("Data: " + data));
fconn.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
UiApplication.getUiApplication().getActiveScreen().add(new RichTextField(e.getMessage()));
}
編輯:我試着做dis.available();並且它對於不從文件讀取的小文件返回0,並且從將從其讀取的較大文件返回0。這是令人困惑的,因爲它應該讀取文件中的字節數量。
你會得到某種錯誤? – jtahlborn
在設備上運行應用程序時,我沒有收到任何異常。 – user1449109
所以當你說「它不會讀取文件」時,你是什麼意思? – jtahlborn