Я использую следующий try/catch, чтобы попытаться разобрать текстовый файл, разделенный на трубы, в массив (каждая строка выглядит так: spanishword | englishword | spanishword.mp3) для приложения для флеш-карт. Довольно просто, но я полный noob. Вот что я собрал вместе, что приводит к FileNotFoundException
.FileNotFoundException: ENOENT ... но, но, но у меня есть файл
Файл res/raw/first100mostcommon.txt. Мне нравится решение проблем, и я не очень заинтересован в том, чтобы получить решение, но лучше понять, чем «файл не найден».
Я думаю, что String strFile = "R.raw.first100mostcommon";
- это правильный способ назвать его; это правильно?
try
{
String strFile = "R.raw.first100mostcommon";
//create BufferedReader to read pipe-separated variable file
BufferedReader br = new BufferedReader(new FileReader(strFile));
String strLine = "";
StringTokenizer st = null;
int row = 0;
int col = 0;
//read pipe-separated variable file line by line
while((strLine = br.readLine()) != null)
{
//break pipe-separated variable line using "|"
st = new StringTokenizer(strLine, "|");
while(st.hasMoreTokens())
{
//store pipe-separated variable values
stWords[row][col] = st.nextToken();
col++;
}
row++;
//reset token number
col = 0;
}
}
catch(Exception e)
{
text.setText("Exception while reading csv file: " + e);
}
logcat было бы неплохо ;-) кроме этого, см. Мое решение comingsoon® - изменить: нет решения: см. Http://stackoverflow.com/a/5675934/2188682 –
Вы должны использовать правильный файловый разделитель. например '/' вместо '.' в 'strFile'. В настоящее время компилятор рассматривает это как полное имя файла, а не как 'filepath'. Так что, скорее всего, он смотрит в папку 'root', где этот файл недоступен, вызывая' FileNotFoundException' – Smit
Является ли ваш файл в том же каталоге, что и ваш файл '.class'? –