簡體   English   中英

使用BufferedReader時,在字符串的開頭添加Null

[英]Null is added in the beginning of the String when using BufferedReader

我正在使用BufferedReader.txt文件中獲取String

 BufferedReader read = new BufferedReader(
new InputStreamReader(getAssets().open(name)));
    BufferedReader count = new BufferedReader(
new InputStreamReader(getAssets().open(name)));

    String line;
    String str =  null;

    while((line = count.readLine()) != null)
    {
        str += read.readLine() + "\n";

    }

比我在TextView顯示該String但它顯示的是null,而不是我的String

nullThis is file 1而不是This is file 1

我怎樣才能解決這個問題??

試試看!

BufferedReader read = new BufferedReader(
        new InputStreamReader(getAssets().open(name)));
BufferedReader count = new BufferedReader(
        new InputStreamReader(getAssets().open(name)));

String line;
String str = "";

while((line=count.readLine())!=null)

{
    str += read.readLine() + "\n";

}

您正在使用:

String str = null;

接着

str += read.readLine() + "\n";

哪一個

str = str + read.readLine() + "\n";

因此,在變量替換之后,我們得到:

str = null + read.readLine() + "\n";

這意味着我們將其與null聯接,從而有意產生"null"

嘗試以下行之一( 僅一個 ):

String str = "";
String str = new String ();

您可以使用StringBuilder代替String 由於String是不可變的,因此具有更好的性能。

[如果您希望StringBuffer是線程安全的,請使用StringBuffer ]

BufferedReader read = new BufferedReader(
new InputStreamReader(getAssets().open(name)));
    BufferedReader count = new BufferedReader(
new InputStreamReader(getAssets().open(name)));

    String line;
    StringBuilder str =  new StringBuilder();

    while((line = count.readLine()) != null)
    {
        str.append(read.readLine()).append("\n");
    }

像這樣初始化

String str = "";

暫無
暫無

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

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