1
我正在研究一個黑莓應用程序,我需要點擊一個url創建一個連接並寫入一個文件並將其保存到SDcard。目前我正在關注這個特定的代碼。但是,當創建FileOutputStream對象時,它會拋出CLassCastException。我正在爲此而苦苦掙扎。從黑莓的給定網址下載pdf文件
public void run() {
HttpConnection httpConnection = null;
DataOutputStream httpDataOutput = null;
InputStream httpInput = null;
OutputStream fos=null;
int rc;
try {
httpConnection = new HttpConnectionFactory()
.getHttpConnection("http://faultcode.techvalens.net/PDF/DrawingSample.PDF");
rc = httpConnection.getResponseCode();
if (rc != HttpConnection.HTTP_OK) {
throw new IOException("HTTP response code: " + rc);
}
httpInput = httpConnection.openInputStream();
InputStream is = httpInput;
FileConnection fconn=(FileConnection)Connector.open("file:///SDCard/Test.txt",
Connector.READ_WRITE);
if(!fconn.exists())
fconn.create();
System.out.println(fconn.exists());
fos = new FileOutputStream(File.FILESYSTEM_PATRIOT, "Test.txt");
// byte[] b = IOUtilities.streamToBytes(inp);
byte[] buffer = new byte[702];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
} catch (Exception ex) {
System.out.println("URL Error........" + ex.getMessage());
} finally {
try {
if (httpInput != null)
httpInput.close();
if (httpDataOutput != null)
httpDataOutput.close();
if (httpConnection != null)
httpConnection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
上述代碼我正在使用。 請讓我知道我的錯誤是什麼。 THanx提前... !!!
我真的不明白你爲什麼需要FileOutputStream。只要調用fconn.openOutputStream()並根據需要寫入字節即可。另外不要忘記在最後關閉文件連接和流!關於FileOutputStream - 在javadoc中有兩個,我沒有看到在這裏投射,但可能在RIM框架中發生了一些事情。 javadoc也提到了一些關於iDEN文件系統的內容。我不知道這個文件系統,但iDEN設備是Sprint設備的一部分,根本不覆蓋所有的BlackBerry設備。 –