我的else if
塊將驗證遠程服務的結果。新創建的文件無法在Java中打開
如果結果匹配,它將觸發另一個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提到filePath
:/file/red_new.docx。這是我如何得到我的文件路徑:String filePath = "D:/file/"+fn+"_new."+fileType;
。 fn
變量是來自第一個API調用的JSON字符串的文件名,而fileType
是來自第二個API調用的JSON字符串的文件類型。我在_new
中添加以表明它是一個新文件,並使用java與fn
和fileType
連接來獲取完整路徑。
定義'無法打開新文件',並告訴我們什麼是「顯示文件被損壞」。不清楚你在問什麼。這些文本文件? – EJP
你應該關閉所有打開的連接/流/閱讀器在一個finally塊或多個finally塊...這些往往有助於解決不一致性,這是一個很好的做法,這樣做 –