【发布时间】:2014-12-10 20:26:17
【问题描述】:
我正在尝试写入文本文件。我可以写入控制台但是我无法写入我的文本文件。我注意到的一件事是String data 不包含任何数据,如果我只是打印到控制台,这可能就是为什么我的文本文件中什么都没有出现。有谁知道这是为什么以及我怎么能做到这一点?
writeFile()方法代码:
public static void writeFile(String filename, String content) throws IOException
{
try
{
Files.write(Paths.get(filename), content.getBytes()); // write file
}
catch (IOException e)
{
System.out.println("Error writing file: " + e);
}
}
测试代码:
public class QuickTest {
public static void main(String... p) throws IOException {
List<SensorInfo> readings = new ArrayList<>();
SensorInfo info = null;
String data = createStringFromInfo(readings);
writeFile("datastore.txt", data);
String filedata = readFile("client-temp.txt");
List<SensorInfo> temps = createInfoFromData(filedata);
System.out.println(header());
for (SensorInfo reading : temps) {
System.out.print(reading.display());
}
}
}
CreateFromInfo 方法:
public static String createStringFromInfo(List<SensorInfo> infoList)
{
String data = "";
for (SensorInfo info : infoList)
{
data += info.asData();
}
return data;
}
createInfoFromData
public static List<SensorInfo> createInfoFromData(String data)
{
List<SensorInfo> infoList = new ArrayList<>();
String[] lines = data.split("\n");
for (String line : lines)
{
SensorInfo info = new SensorInfo(line);
infoList.add(info);
}
return infoList;
}
【问题讨论】:
-
我们需要查看
createStringFromInfo()方法来确定为什么data不包含数据,但我的第一个猜测是因为您将一个空列表传递给该方法。 -
@JohnBollinger 请找到上面写的createStringFromInfo()方法。
-
您创建一个新的
ArrayList,然后阅读其内容。数据应该从哪里来? -
@Tom 数据来自“client-temp.txt”
-
@rr0102 不。您在尝试写入
datastore.txt之后 读取了该文件。