簡體   English   中英

用Java將File對象寫入文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM