Как читать строку за строкой из файла в Android Studio с помощью InputStreamReader - PullRequest
0 голосов
/ 09 апреля 2019

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

public void ReadBtn() {
        char[] inputBuffer = new char[READ_BLOCK_SIZE];
        int charRead;
        String s = "";
        int READ_BLOCK_SIZE = 100;

        //reading text from file
        try {
            FileInputStream fileIn = openFileInput("mytextfile.txt");
            InputStreamReader InputRead = new InputStreamReader(fileIn);
            BufferedReader BR = new BufferedReader(InputRead);

            while((charRead = InputRead.read(inputBuffer)) > 0) {
                // char to string conversion

            String readstring = String.copyValueOf(inputBuffer, 0, charRead);
                s += readstring;
                getContactInfo(s);


            }

            InputRead.close();


        } catch(Exception e) {
            e.printStackTrace();
        }
    }

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Вы можете прочитать все строки в ArrayList:

public void ReadBtn() {
    int READ_BLOCK_SIZE = 100;
    ArrayList<String> linesList = new ArrayList<>();

    // reading text from file
    try {
        FileInputStream fileIn=openFileInput("mytextfile.txt");
        InputStreamReader InputRead= new InputStreamReader(fileIn);
        BufferedReader br = new BufferedReader(InputRead);

        String line = br.readLine();
        while (line != null) {
            linesList.add(line);
            line = br.readLine();
        }

        InputRead.close();

        // here linesList contains an array of strings

        for (String s: linesList) {
            // do something for each line
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}
0 голосов
/ 09 апреля 2019

-Попробуйте этот код. Замените путь sdCard на путь к файлу, где существует mytextfile.txt.

String sdCard = Environment.getExternalStorageDirectory().getAbsolutePath();

    String fileName = "mytextfile.txt";
    String path = sdCard + "/" + MarketPath + "/";

    File directory = new File(path);
    if (directory.exists()) {
        File file = new File(path + fileName);
        if (file.exists()) {
            String myData = ""; // this variable will store your file text
            try {
                FileInputStream fis = new FileInputStream(file);
                DataInputStream in = new DataInputStream(fis);
                BufferedReader br =new BufferedReader(new InputStreamReader(in));
                String strLine;
                while ((strLine = br.readLine()) != null) {
                    myData = myData + strLine;
                }


                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

}
...