![](/img/trans.png)
[英]BufferedReader/Printwriter readLine cutting off beginning of a string
[英]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.