writeFile()方法不起作用

时间:2014-12-10 20:26:17

标签: java arraylist writefile

我正在尝试写入文本文件。我能够写入控制台,但是我无法写入我的文本文件。我注意到的一件事是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;
    }

1 个答案:

答案 0 :(得分:0)

createStringFromInfo()的实现证实了我的猜测:当它的参数是一个空列表时,它将返回一个空字符串,就像程序中的情况一样。我同意你的看法,这就是为什么你得到一个空文件。

通过在readings列表中填入描述要写入文件的信息的SensorInfo对象(在调用createStringFromInfo()之前)来修复它。如果那些SensorInfo对象的数据应来自读取文件&#34; client-temp.txt&#34;然后你应该首先阅读它,然后将 List传递给createStringFromInfo()以获取要写入的数据。