从不同文件夹中的文件中读取值

时间:2015-03-03 08:32:43

标签: java

我想将值读入这些文件夹:

/sys/devices/virtual/thermal/thermal_zone0/temp:68000
/sys/devices/virtual/thermal/thermal_zone3/temp:50000
/sys/devices/virtual/thermal/thermal_zone5/temp:24900
/sys/devices/virtual/thermal/thermal_zone7/temp:62000
/sys/devices/virtual/thermal/thermal_zone8/temp:65000
/sys/devices/virtual/thermal/thermal_zone9/temp:78000

我测试了这段代码:

public void listFolders() throws IOException
    {
        File directory = new File("/sys/devices/virtual/thermal");

        File[] fList = directory.listFiles();

        for (File file : fList)
        {
            if (file.isDirectory() && file.getName().startsWith("thermal_zone"))
            {
                File[] listFiles = file.listFiles();
                for (File file1 : listFiles)
                {
                        byte[] fileBytes = null;
                        if (file1.exists())
                        {
                            try
                            {
                                fileBytes = Files.readAllBytes(file1.toPath());
                            }
                            catch (AccessDeniedException e)
                            {
                            }

                            if (fileBytes.length > 0)
                            {
                                System.out.println(">>>>> " + fileBytes);
                            }                            
                    }
                }
            }
        }
    }

但是当我测试代码时,我得到null结果。

你能帮我解决一下代码吗?

您也可以帮我优化代码以提高性能吗?

2 个答案:

答案 0 :(得分:2)

而不是

if (file1.isFile() && file.getName().startsWith("temp"))

纠正

if (file1.isFile() && file1.getName().startsWith("temp"))

现在您将看到打印的字节。

答案 1 :(得分:2)

在本声明中,

if (file1.isFile() && file.getName().startsWith("temp"))

&&使用file1.getName()

应该工作!!!

此外,它将打印字节对象的哈希码,而不是字节,因为您需要迭代数组和打印。 Look here for refernce

例如:System.out.println(Arrays.toString(fileBytes))