2014-10-16 81 views
1

我是新來的android編程。我正在嘗試一些基本的東西?Android文件流

有人可以幫我解決我的問題嗎?

  1. 我可以從文本文件讀取unicode內容並將其顯示在控制檯上嗎? 2.如果文本大於一頁,那麼如何閱讀一段時間後逐頁顯示?

感謝您的幫助。

+1

請不要在同一帖子中提出無關的問題。由於您已經有了一個迴應,試圖回答這兩個問題,這次修復它可能會很晚,但請不要再這樣做。 – 2014-10-16 18:10:41

回答

0

關於這個問題,我會告訴你,這是你的第一個Android程序,你會創建。我不確定,你曾經用Java編程過,或者曾經編程過任何東西。對不起,如果我不對,但這是一個非常複雜的問題,所以我們喜歡簡單的問題,你告訴的是,你已經嘗試過什麼,你想要做什麼(完全!)等等。這裏有一個很好的關於好問題的文章:https://stackoverflow.com/help/how-to-ask

我試着提一些方法來解決你的問題。他們中沒有一個是完整的,但我認爲你可以在Google之後。

我唯一的這個問題分爲三個部分...

  1. 我能讀unicode的內容形成一個文本文件?

你想在哪裏存儲文件?它來自互聯網嗎?或者它是靜態插入到應用程序中,還是由用戶修改?

如果第一個,我建議你,使用WebView類。它是Android中的內置View,並顯示來自Internet的HTML文件。請參閱文檔here

如果它來自互聯網,但你想實現下載和顯示的東西,你應該閱讀關於AsyncTask和Java的文件閱讀器。 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

如果您想從設備讀取,主要問題是,是否要在設備上編輯文件?

如果沒有,我會把文件放到assets文件夾中。在Android工作室它在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. 並將其顯示在控制檯上?

您想在哪個控制檯上顯示?在IDE的控制檯上?在這種情況下,您應該使用Log.d("SomeTagThatTagsThisClass", "Message I'd Like To Display");

或者您想要在設備上顯示文本?在這種情況下,應創建一個創建在活動一個TextView,和設置文本,是這樣的:

TextView tv = (TextView) findViewById(R.id.mytextview); 
tv.setText("Some string..."); 
  • 如果文本是比單個大頁面,如何讀取它們以逐頁顯示一段時間?
  • 如果文字太大,我會用ScrollView。這是一個簡單的,可滾動的視圖,自動隱藏文本的溢出,您可以滾動它。

    如果您希望顯示的文本頁逐頁,我會使用一個ViewPager,並顯示更多Fragment S上的文字。