Я хочу получить текст из текстового файла, который у меня есть в моем проекте (студия Android), и преобразовать этот текст в строку. В настоящее время у меня возникают проблемы с получением правильного пути или что-то в этом роде. Я использую два метода, которые я нашел здесь, в Stackoverflow, чтобы преобразовать текстовые файлы в строки. Это методы:
public static String convertStreamToString(InputStream is) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
return sb.toString();
}
public static String getStringFromFile (String filePath) throws Exception {
File fl = new File(filePath);
FileInputStream fin = new FileInputStream(fl);
String ret = convertStreamToString(fin);
//Make sure you close all streams.
fin.close();
return ret;
}
И я вызываю методы следующим образом, и я пробовал все виды путей, но, похоже, ни один из них не работает:
Log.i("er0r", Solve.getStringFromFile("\\tables\\lowerLayer\\cross\\whiteRed.txt"));
Это просто попытка распечатать содержимое текстового файла. Я получаю следующую ошибку: java.io.FileNotFoundException: .\tables\lowerLayer\cross\whiteRed.txt: open failed: ENOENT (Нет такого файла или каталога)
Вот как я заказал свои пакеты: https://imgur.com/a/rK9R5
Как я могу это исправить? Спасибо
РЕДАКТИРОВАТЬ:
public String LoadData(String inFile) {
String str = "";
try{
StringBuilder buf=new StringBuilder();
InputStream json=getAssets().open(inFile);
BufferedReader in=
new BufferedReader(new InputStreamReader(json, "UTF-8"));
while ((str=in.readLine()) != null) {
buf.append(str);
}
in.close();
} catch (Exception e) {
Log.e("er0r", e.toString());
}
return str;
}
Пробовал это с inFile = "assets\whiteRed.txt" Получил эту ошибку: java.io.FileNotFoundException: assets\whiteRed.txt
ДОПОЛНИТЕЛЬНЫЙ КОД: Конструктор класса, вызывающего метод LoadData.
public class Solve {
private Context context;
//constructor
public Solve(Context context){
this.context = context;
}
("\\tables\\lowerLayer\\cross\\whiteRed.txt"
. Это несуществующий невозможный путь к файловой системе. Неудивительно, что файл не может быть найден. Как вы пришли к этому пути? Где ваш txt файл на самом деле? - person greenapps   schedule 18.04.2017Tried this with inFile = "assets\whiteRed.txt"
. Нет. Попробуйте сinFile = "whiteRed.txt";
- person greenapps   schedule 18.04.2017return buf.toString();
в качестве последней строки в блоке try. Вы не использовали построитель строк! Вы были? - person greenapps   schedule 18.04.2017buf.append(str);
Должно бытьbuf.append(str+"\n");
. - person greenapps   schedule 18.04.2017and then context.getAssets()...
. - person greenapps   schedule 18.04.2017which are callad from other classes
. Ты никогда не дойдешь до сути!? От деятельности? - person greenapps   schedule 18.04.2017And call the method from an activity like MyClass.myMethod(this, other parameters)
. - person greenapps   schedule 18.04.2017The class is called from the activity, yes.
. - person greenapps   schedule 18.04.2017