java - 使用 DataOutputStream 将带有数组的字符串作为字节写入文件

标签 java dataoutputstream

我希望将用户输入的所有纬度和经度数据写入WriteGPSData.txt。但这段代码只写了最后输入的纬度和经度。帮我解决这个问题。

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JOptionPane;

public class GPS_main {

    public static void main(String[] args) {
        String strFilePath = "WriteGPSData.txt";
        try {
            System.out.println("+++=====GPS POINTS=======+++");
            // GPS p1 = new GPS ();
            GPS[] p2;
            p2 = new GPS[3];
            p2[0] = new GPS();
            // GPS p2 = new GPS();
            for (int i = 0; i < p2.length; i++) {
                p2[i] = new GPS();
                String aa = JOptionPane.showInputDialog("Enter latitude: ");
                double a = Double.parseDouble(aa);
                p2[i].setLat(a);
                String bb = JOptionPane.showInputDialog("Enter longitude: ");
                double b = Double.parseDouble(bb);
                p2[i].setLon(b);
                // System.out.println(p2[i].toGPSString());
                FileOutputStream fos = new FileOutputStream(strFilePath);
                DataOutputStream dos = new DataOutputStream(fos);
                String a2 = Double.toString(a);
                String b2 = Double.toString(b);
                // System.out.println("hello"+a2+b2);
                dos.writeBytes(a2 + "  " + b2);
                dos.close();
            }
        } catch (IOException e) {
            System.out.println("IOException : " + e);
            // System.out.println("   ");
        }
    }
}

在 BlueJ 中运行

最佳答案

将这些行保留在 for 循环之外:

 FileOutputStream fos = new FileOutputStream(strFilePath);     
  DataOutputStream dos = new DataOutputStream(fos);

写入完成后关闭OutputStream。你可以使用finally()并在其中写入dos.close();

在您的代码中,每次迭代都会创建一个新文件,因此旧数据会被覆盖。

关于java - 使用 DataOutputStream 将带有数组的字符串作为字节写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16169888/

相关文章:

java - 如何使用java POI从Excel表中读取数据插入数据库?

Java OutputStream/TelnetClient 不能写入超过 1955 个字符的字符串

java - 使用 DataOutputStream 上传文件不显示实际进度

java - 有没有办法将 CSV 之类的文本字符串复制到二维数组?

java - 为什么这段代码不播放声音文件

Java SWT 文件保存

java - LibGdx - 默认代码的 NullPointerException

java - 在 Java 中通过 DataOutputStream 发送多个 POST 请求

java - 通过套接字将 int 从 Java 客户端写入到 C 服务器

java - 将unicode写入rtf文件