2012-01-10 85 views
1

我試圖從我的硬盤驅動器使用下面的代碼加載文件輸入流。使用文件輸入流的文件未找到異常

package com.filefinder1; 

import java.io.File; 
import java.io.FileInputStream; 
import android.app.Activity; 
import android.os.Bundle; 

public class FileFinder_1Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try 
     { 
     String pathToFile = "C:\\\\Koala_Small.jpg"; 
     System.out.println("File Path: "+pathToFile); 
     File file = new File(pathToFile); 
     FileInputStream fileInputStream = new FileInputStream(file); 
    } 
    catch (Exception ex) 
    { 
    System.out.println("Error Catch Triggered: "+ex); 
    } 
    } 
} 

我已經嘗試了很多不同變化的文件路徑,但沒有一切恢復了以下錯誤:

01-10 10:59:06.189: I/System.out(2218): Error Catch Triggered: java.io.FileNotFoundException: /C:\\Koala_Small.jpg (No such file or directory) 

一些地方,一路上一個額外的「/」似乎正在增加到文件路徑(不知道爲什麼)。當我問系統打印試圖將其加載到它返回一個文件變量之前的文件路徑:

01-10 10:59:06.189: I/System.out(2218): File Path: C:\\Koala_Small.jpg 

我已經嘗試了一堆文件路徑的不同的變化(小寫字母「C」,兩條斜槓而不是四個......)似乎沒有什麼能解決問題。有沒有人知道這裏可能會出現什麼問題?

+1

你的手機/模擬器不應該訪問你的硬盤... – snowCrabs 2012-01-10 19:06:04

+0

@snowCrabs是對的 – Sap 2012-01-10 19:06:45

+1

C:\\\\ Koala_Small.jpg?這是一大堆斜槓......也嘗試使用一個正斜槓。 C:/例如。 – Max 2012-01-10 19:07:35

回答

5

你應該把文件在您的資產目錄在你的Android項目。

然後執行從您的活動如下:

getAssets().open("Koala_Small.jpg"); 

這將返回你的輸入流。

正如在評論中提到的那樣,模擬器無法以您試圖執行的方式訪問您的PC文件系統。

+0

謝謝大家。此解決方案有效。 – 2012-01-10 20:10:15

0

發生在你的模擬器驅動器的文件。只能使用2斜槓的路徑