[英]Writing a File object to a file in java
對於一堂課,我必須從客戶端向服務器發送任何類型的文件。 我必須分別處理每個數據包並使用UDP。 我已經設法將文件從客戶端傳輸到服務器,並且現在有一個文件對象,我無法弄清楚如何保存到用戶指定的目錄。
f = new File(path + '\\' + filename);//path and filename are user specified.
FileOutputStream foutput = new FileOutputStream(f);
ObjectOutputStream output = new ObjectOutputStream(foutput);
output.writeObject(result);//result is a File
output.flush();
output.close();
每當我運行此代碼時,它都會使用適當的名稱寫入一個新文件,但是我正在測試的文本文件最終僅包含亂碼。 有什么方法可以將File對象轉換為適當目錄中的文件?
編輯:事實證明,我誤會了文件的確切含義。 我沒有傳輸數據,而是傳輸路徑。 如何傳輸實際文件?
ObjectOutputStream是一個類,可將特定格式的數據輸出到文本文件。 只有ObjectInputStream的readObject()可以解碼該文本文件。 如您所見,如果您打開文本文件,那只是亂碼。
你要這個:
FileOutputStream fos = new FileOutputStream(path + '\\' + filename);
FileInputStream fis = new FileInputStream(result);
byte[] buf = new byte[1024];
int hasRead = 0;
while((hasRead = fis.read(buf)) > 0){
fos.write(buf, 0, hasRead);
}
fis.close();
fos.close();
如果我理解您的問題,那么如何使用FileWriter
呢?
File result = new File("result.txt");
result.createNewFile();
FileWriter writer = new FileWriter(result);
writer.write("Hello user3821496\n"); //just an example how you can write a String to it
writer.flush();
writer.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.