Я вижу несколько проблем. Во-первых, в вашей функции нет возврата, так что она даже не скомпилируется.
Во-вторых, вы возвращаете индекс, который соответствует расположению какой-либо строки в файле, где он нашел эту строку. Не лучше ли вернуть всю строку текста?
Я бы поставил возврат из функции прямо тогда, когда вы найдете значение, вместо использования break.
Извините, теперь я понимаю, почему вы не возвращаетесь из цикла. Тем не менее, вы все равно можете сделать это, если добавите наконец в свою функцию
- Обновлено для удаления нескольких точек выхода -
- Исправлено объявление переменных, так что оно имеет область видимости в конечном итоге -
- Хорошо, я думаю, что это должно скомпилироваться сейчас -
public class ReadIn {
public static int read(String path, int x, int y, int z, Player player) {
DataInputStream in = null;
int index = -1;
try {
FileInputStream fstream = new FileInputStream(path);
in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while (index == -1 && (strLine = br.readLine()) != null) {
index = strLine.indexOf(x + "_" + y + "_" + z);
}
in.close();
} catch (Exception exception) {//Catch exception if any
exception.printStackTrace();
}
return index;
}