簡體   English   中英

如何使用InputStreamReader從Android Studio中的文件逐行讀取

[英]How to read line by line from a file in Android Studio using InputStreamReader

我現在可以讀取文件,但是對於如何逐行讀取字符串以運行我創建的解析器感到困惑。 任何的意見都將會有幫助。

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();
        }
    }

-嘗試此代碼。 將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();
            }

        }
    }

}

您可以讀取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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM