在Android中阅读.text文件时出现问题

时间:2015-03-10 23:35:42

标签: android file dropbox

我正在尝试读取我从Dropbox下载的文件(使用Dropbox CORE API)。

 private void downloadropboxfile(final String filename)
{
    Thread thread = new Thread(new Runnable(){
        @Override
        public void run() {
            try {
                File file = new File(getCacheDir(),filename);
                if(!file.exists())
                    file.createNewFile();
                FileOutputStream outputStream = new FileOutputStream(file);

                DropboxAPI.DropboxFileInfo info=mDBApi.getFile("/" + filename, null, outputStream, null);


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

}

然后在另一个函数中,我调用downloaddropbox函数并尝试在Onclick事件上读取文件内容。

  String filename = "info.txt";

     downloadropboxfile(filename);
     String strLine = "";
     try {
         InputStream instream = new FileInputStream(new File(getCacheDir(),filename));
         InputStreamReader inputreader = new InputStreamReader(instream);
          BufferedReader bReader = new BufferedReader(inputreader);

         /** Reading the contents of the file , line by line */
         while ((strLine = bReader.readLine()) != null) {
             mTestOutput.setText(strLine);
         }

     } catch (FileNotFoundException e) {
         e.printStackTrace();
     } catch (IOException e) {
         e.printStackTrace();
     }

我的问题是我没有立即获取文件内容。我需要单击3-4次按钮才能读取文件内容。我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您正在调用downloaddropboxfile,它会启动一个新线程来下载该文件。但是你会立即尝试读取本地文件(在下载之前)。

如果您以前没有使用过线程,重要的是要理解downloaddropboxfile几乎立即返回,但它启动的线程会在后台运行。在尝试对下载的文件执行某些操作之前,您需要等待它完成。