我正在尝试写入文本文件。我能够写入控制台,但是我无法写入我的文本文件。我注意到的一件事是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;
}
答案 0 :(得分:0)
createStringFromInfo()
的实现证实了我的猜测:当它的参数是一个空列表时,它将返回一个空字符串,就像程序中的情况一样。我同意你的看法,这就是为什么你得到一个空文件。
通过在readings
列表中填入描述要写入文件的信息的SensorInfo
对象(在调用createStringFromInfo()
之前)来修复它。如果那些SensorInfo
对象的数据应来自读取文件&#34; client-temp.txt&#34;然后你应该首先阅读它,然后将 List
传递给createStringFromInfo()
以获取要写入的数据。