gpt4 book ai didi

java - 新创建的文件无法在 Java 中打开

转载 作者:行者123 更新时间:2023-12-01 09:06:07 25 4
gpt4 key购买 nike

我的 else if block 将验证远程服务的结果。

如果结果匹配,将触发另一个 API 调用以再次联系远程服务。远程服务会将文件发送回我的客户端程序。

我测试了我的所有代码,它正在工作,但我无法打开新文件,它显示文件已损坏。我的客户端程序将从远程服务读取该文件并将其写入不同目录中的另一个文件名。

这是我的源代码:

else if (result == 1 && value.equals("problem"))
{
String Url = "http://server_name:port/anything/anything/";
String DURL = Url.concat(iD);
System.out.println("URL is : " + DURL); // the remote API URL
URL theUrl = new URL (DURL);
HttpURLConnection con1 = (HttpURLConnection) theUrl.openConnection(); //API call
con1.setRequestMethod("GET");
con1.connect();
int responseCode = con1.getResponseCode();
if(responseCode == 200)
{
try
{
InputStream is1 = con1.getInputStream();
BufferedReader read1 = new BufferedReader (new InputStreamReader(is1));
String data1 = "" ;
while ((data1 = read1.readLine()) != null)
{
PrintStream ps = new PrintStream(new FileOutputStream(filePath));
ps.print(data1);
ps.close();

}
System.out.println("The new sanitized file is ready");
}
catch(IOException e)
{
e.printStackTrace();
}
}
}

这是我在代码D:/file/red_new.docx中提到的filePath。这就是我获取文件路径的方式:String filePath = "D:/file/"+fn+"_new."+fileType;fn 变量是来自第一个 API 调用的 JSON 字符串的文件名,而 fileType 是来自第二个 API 调用的 JSON 字符串的文件类型。我添加了 _new 以指示它是一个新文件,并使用 java 连接 fnfileType 来获取完整路径。

最佳答案

您正在为每行输入创建一个新的输出文件,因此您只能得到最后一行。而且您还会丢失行终止符。试试这个:

PrintStream ps = new PrintStream(new FileOutputStream(filePath));
while ((data1 = read1.readLine()) != null)
{
ps.println(data1);
}
ps.close();

您也没有关闭输入流。

如果这些文件并不都是文本文件,您应该使用 InputStreamOutputStream

关于java - 新创建的文件无法在 Java 中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41274722/

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