[英]Write String to a text file
我有這段代碼可以從輸入流中獲取GPS數據,從而生成測試文件,但里面沒有任何內容。 你能告訴我這里有什么問題嗎?
public void run ()
{
byte[] buffer = new byte[1024];
int len = -1;
try
{
while ( ( len = this.in.read(buffer)) > -1 )
{
String gpsInfo = new String(buffer,0,len);
PrintWriter data = new PrintWriter("test.txt");
data.println(gpsInfo);
System.out.print(gpsInfo);
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
我正在獲得正確的控制台輸出。
您正在while loop
重復打開同一文件 。 您應該在進入循環之前先打開。 還flush()
和close()
流。
PrintWriter data = new PrintWriter("test.txt");
while((len = this.in.read(buffer)) > -1) {
String gpsInfo = new String(buffer,0,len);
data.println(gpsInfo);
System.out.print(gpsInfo);
}
data.flush();
data.close();
如果您使用的是Java 7及更高版本,則可以在try塊本身中打開文件。 在try塊中的代碼完成后,它將自動關閉。 但是不要忘了flush()
數據。
public void run () {
byte[] buffer = new byte[1024];
int len = -1;
try (PrintWriter data = new PrintWriter("test.txt")) {
while((len = this.in.read(buffer)) > -1) {
String gpsInfo = new String(buffer,0,len);
data.println(gpsInfo);
System.out.print(gpsInfo);
}
data.flush();
}
catch ( IOException e ) {
e.printStackTrace();
}
}
您的做法實際上是正確的。 將數據寫入文本文件后, 關閉 PrintWriter
實例。
data.close();
如果您想了解更多信息,請查看此鏈接
代碼段:
PrintWriter data = new PrintWriter("test.txt");
String gpsInfo = null;
while ( ( len = this.in.read(buffer)) > -1 )
{
gpsInfo = new String(buffer,0,len);
data.println(gpsInfo);
System.out.print(gpsInfo);
}
data.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.