2016-02-10 5 views
0

Я пытаюсь прочитать файл .txt, в котором есть json внутри, но я получаю FileNotFoundException и obj равно null. Я предположил, что путь неправильный, но я видел в других вопросах, что это будет правильно ....Каков правильный путь для чтения файла .txt в java (android)?

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

JsonParser parser = new JsonParser(); 
Object obj; 

     try { 
      obj = parser.parse(new FileReader("C:/Users/Kevin/jsontest.txt")); 
     }catch(FileNotFoundException f){ 

     } 
+0

Попробуйте распечатать StackTrace ошибки 'f.printStackTrace();' Что линию это говорит ошибка приходящий из? –

+0

Это ошибка: java.io.FileNotFoundException: C/Users/Kevin/json.txt: open failed: ENOENT (Нет такого файла или каталога) –

+0

Попробуйте C: \\ Users \\ Kevin \\ jsontest.txt – BryanT

ответ

0

Попробуйте этот вариант.

  1. Создайте папку в папке res и поместите здесь свой txt.
  2. положить этот код:

     Resources res = getResources(); 
         InputStream in = res.openRawResource(R.raw.jsontest); 
         String json = IOUtils.toString(in); 
         IOUtils.closeQuietly(in); 
    
  3. Поместите эту строку в вашем JSONObject

    JSONObject J = новый JSONObject (fakejson);

  4. Возможно, вам нужно импортировать Utils. Добавьте к этому Gradle:

    компилировать Коммонс--й: Викисклад Io: 2,4 '

0

Я не уверен, что вы стремитесь, но вы можете просто проверить первый, если отказ исходит от FileReader объекта (или пути), а затем добавить его в JsonParser объект обратно .. Примечание: попробуйте чтобы поставить файл в том же рабочем пространстве, что вы пишете свой Java-файл.

0

Использование Files.lines. Что-то в этом роде было бы трюком, если вы хотите читать по строкам.

import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.util.stream.Stream; 

public class Readfile { 

    public static void main(String args[]) { 
     final Path location = Paths.get("C:/Users/Kevin/jsontest.txt"); 
     try (Files.lines(location)) { 
      lines.forEach(line -> 
       System.out.println(line) 
      ); 
     } catch (IOException e) { 
      // we have a problem 
     } 
    } 
} 

Вышеупомянутое должно обрабатывать текстовый файл по строкам.

Если, с другой стороны, вы пытаетесь разобрать JSON, используйте Jackson.

+0

cannnot resolve symbol Paths .. –

+0

Я не могу этого импортировать, я в android, не уверен, что это может быть проблемой ... –