gpt4 book ai didi

java - Bufferedwriter 没有将*所有内容*保存到文件中

转载 作者:行者123 更新时间:2023-12-02 00:37:18 25 4
gpt4 key购买 nike

我对java有点陌生,希望有人能帮助我。我到处都找过了,但似乎找不到解决方案。我正在尝试使用 bufferedwriter 将方法的结果保存到文件中。 bufferedwriter 本身的工作方式是保存一些其他字符串,但是当涉及到这个函数时,它只是显示“null”。是因为该方法的结果返回多个字符串吗?我该如何解决这个问题?我的代码如下:

Bufferedwriter代码:

public static boolean saveStringToFile (String fileName, String saveString)
{
boolean saved = false;
BufferedWriter bw = null;
try
{
bw = new BufferedWriter(new FileWriter(fileName));
try
{
bw.write(saveString);
saved = true;
}
finally
{
bw.close();
}

}
catch (IOException ex)
{
ex.printStackTrace();
}
return saved;
}

函数本身:

public static void getNetDetails()
{
try {
Process net = Runtime.getRuntime().exec("lsof -i -n -P");
BufferedReader netInput = new BufferedReader(
new InputStreamReader(net.getInputStream()));
while ((netDetails = netInput.readLine()) !=null)
{
System.out.println(netDetails);
System.out.println("\n");
}

}
catch(IOException e) {
System.out.println("exception happened - here are the details: ");
e.printStackTrace();

}
}

使用 bufferedwriter 将函数保存到文件

public static void generateNetReport()
{
saveStringToFile("Net.txt","here is the thing.." + "\n" + netDetails );
}

有人可以帮助我如何将 netDetails 保存到文件中而不只是显示 null 吗?

最佳答案

(已编辑。)

这就是 getNetDetails() 中的问题:

while ((netDetails = netInput.readLine()) !=null)

换句话说,该方法总是netDetails保留为空,除非出现异常。

如果getNetDetails()返回一个字符串而不是设置一个变量,那就更好了,并且假设它是为了返回文件的最后一行,它应该是这样的:

String line = null;
String nextLine;
while ((nextLine = netInput.readLine()) != null) {
line = nextLine;
}
return line;

您还应该在finally block 中关闭InputStreamReader,并且几乎可以肯定不会吞掉异常。

关于java - Bufferedwriter 没有将*所有内容*保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7417287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com