【发布时间】:2013-04-05 12:00:09
【问题描述】:
我正在编写一个可能包含 1000 个数据点的文件。我有所有这些课程,目前正在最后写入所有数据(数据点以 1s 的间隔获取)。我目前正在做的事情写在下面,而且很慢。更改将字符串/字节写入文件的方式会更好吗?还是在应用程序运行时将此信息写入某个文件指针会更好?
顺便说一句,getAccuracy() 之类的所有东西都是浮点数/整数(因此它也必须转换它们)。
fileStr = "";
fileStr += "timestamp,Accuracy,Altitude,Latitude,Longitude,GPSSatelliteEntries\r\n";
for (Iterator<Entry> i = entries.iterator(); i.hasNext(); ) {
Entry item = i.next();
long ts = item.getTs();
DataEntry d = item.getD();
List<GPSSatelliteEntry> satellites = item.getG();
// write stuff
fileStr += ts + ",";
fileStr += d.getAccuracy() + "," + d.getAltitude() + "," + d.getLatittude() + "," + d.getLongitude() + ",";
fileStr += "[";
boolean entered = false;
for (Iterator<GPSSatelliteEntry> j = satellites.iterator(); j.hasNext(); ) {
GPSSatelliteEntry item2 = j.next();
entered = true;
fileStr += "(" + item2.getAzimuth() + "," + item2.getElevation() + "," + item2.getPrn() + "," + item2.getSnr() + "),";
}
// chop off extra ,
if (entered)
fileStr = fileStr.substring(0, fileStr.length() - 1);
fileStr += "]";
fileStr += "\r\n";
}
【问题讨论】:
-
StringBuilder/Buffer woot woot!
-
对于整数和浮点数(或整数和浮点数),我建议使用 String.valueOf()
-
@Aquillo 所以你不建议使用
Float.toString()和Integer.toString()? -
@MasterGberry 如果是原语,使用
toString(),否则使用String.valueOf()