Java 将字符串写入文本文件
我有这个代码,从输入流获取GPS数据,生成测试文件,但里面什么都没有。你能告诉我这里有什么问题吗Java 将字符串写入文本文件,java,file,printwriter,Java,File,Printwriter,我有这个代码,从输入流获取GPS数据,生成测试文件,但里面什么都没有。你能告诉我这里有什么问题吗 public void run () { byte[] buffer = new byte[1024]; int len = -1; try { while ( ( len = this.in.read(buffer)) > -1 )
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();
}
}
我得到了正确的控制台输出
你的做法实际上是正确的。将数据写入文本文件后,关闭
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();
您在
while循环中重复打开同一个文件。你应该在进入循环之前打开。同时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();
如果您使用的是Java7及以上版本,那么您可以在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();
}
}
我认为您需要调用data.close()
输出文件仍然没有成功。我需要追加吗?该方法是否每次都覆盖该文件?文本文件上仍然没有输出。尝试了更新的代码,但文本文件上仍然没有输出。这对我适用提供文件的绝对路径
并尝试将输出写入文件。我建议您提供文件的绝对路径,以便进行测试。