Android文件流

时间:2014-10-16 16:42:24

标签: android

我是Android编程新手。我正在尝试一些基本的东西?

有人可以帮我解决问题吗?

  1. 我可以从文本文件中读取unicode内容并将其显示在控制台上吗?                                                                                                                                                              2.如果文字大于单个页面,如何阅读它们以便在一段时间内逐页显示?
  2. 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

关于这个问题,我会告诉您,这是您创建的第一个Android程序。我不确定,你曾经用Java编程,或曾经编程过任何东西。对不起,如果我不对,但这是一个非常复杂的问题,所以我们喜欢简单的问题,在哪里告诉你,你已经尝试了什么,你想做什么(确切地说!) , 等等。这是一篇关于好问题的好文章:https://stackoverflow.com/help/how-to-ask

我试着提一些方法来解决你的问题。它们中的任何一个都不完整,但我认为你可以跟随谷歌。

我会在三个方面解决这个问题...

  
      
  1. 我可以从文本文件中读取unicode内容吗?
  2.   

您想在哪里存储文件?它来自互联网吗?或者它是静态插入应用程序,还是由用户修改?

如果第一个,我建议您使用WebView类。它是Android中的内置视图,并显示来自互联网的HTML文件。请参阅文档here

如果它来自互联网,但你想实现下载和显示内容,你应该阅读AsyncTask和Java的FileReaders。 AsyncTask是一个特殊的内置类,您可以在其中创建一个方法,该方法将在另一个线程中运行,而不是在UI线程中运行,并创建一个方法,该方法将在UI线程中运行。前一个。这很重要,因为您无法在UI线程中创建HTTP连接,但也无法从任何其他线程刷新UI。关于从互联网上阅读,这里有一个小样本代码:

public static void main(String[] args) throws Exception {

    URL oracle = new URL("http://www.oracle.com/");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();
}

还有一些docs

如果您想从设备上阅读,主要问题是,您是否也想在设备上编辑文件?

如果没有,我将文件放入资产文件夹。在Android Studio中,它位于src/main/assets/,之后您就可以通过BufferedReader方式打开文件了:

reader = new BufferedReader(
    new InputStreamReader(getAssets().open("filename.txt")));

如果要编辑文件,则应将其保存在INTERNAL_STORAGE中。这是打开BufferedReader的代码:

reader = new BufferedReader(new InputStreamReader(openFileInput("filename.txt")));

关于内部存储,您可以阅读Android docs

关于如何从BufferedReader读取,您可以在第一个代码中看到一个示例,或者我可以推荐官方Java docs

  
      
  1. 并在控制台上显示它?
  2.   

您要在哪个控制台上显示?在IDE的控制台上?在这种情况下,您应该使用Log.d("SomeTagThatTagsThisClass", "Message I'd Like To Display");

或者您想在设备上显示文字?在这种情况下,您应该在Activity中创建一个TextView,并设置文本,如下所示:

TextView tv = (TextView) findViewById(R.id.mytextview);
tv.setText("Some string...");
  
      
  1. 如果文字大于单个页面,如何阅读它们以便在一段时间内逐页显示?
  2.   

如果文字太大,我会使用ScrollView。它是一个简单的可滚动视图,可以自动隐藏文本的溢出,并且您可以滚动它。

如果您希望逐页显示文字 ,我会使用ViewPager,并在Fragment以上显示文字。< / p>