Исключение «Файл не найден» с использованием потока ввода файлов

Я пытаюсь загрузить файл с жесткого диска в поток ввода файла, используя приведенный ниже код.

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», две косые черты вместо четырех...), похоже, ничего не решает проблему. Кто-нибудь знает, что здесь может быть не так?


person Ben Pearce    schedule 10.01.2012    source источник
comment
Ваш телефон/эмулятор не должен иметь доступа к вашему жесткому диску...   -  person snowCrabs    schedule 10.01.2012
comment
C:\\\\Koala_Small.jpg? Это тонна косых черт... также попробуйте использовать одну прямую косую черту. С:/ например.   -  person Max    schedule 10.01.2012


Ответы (2)


Вы должны поместить файл в каталог активов в своем проекте Android.

Затем выполните следующее из своей деятельности:

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

Это вернет ваш входной поток.

Как уже упоминалось в комментариях, эмулятор не имеет доступа к файловой системе вашего компьютера так, как вы пытаетесь это сделать.

person rogermushroom    schedule 10.01.2012

поместите файл на диск эмулятора и используйте только 2 косые черты для пути

person MozenRath    schedule 10.01.2012