2014-06-16 18 views
10

Tôi muốn viết một dòng mới bằng cách sử dụng FileOutputStream; Tôi đã thử các cách tiếp cận sau đây, nhưng không có phương pháp nào trong số họ đang hoạt động:Cách viết dòng mới trong Java FileOutputStream

encfileout.write('\n'); 
encfileout.write("\n".getbytes()); 
encfileout.write(System.getProperty("line.separator").getBytes()); 
+0

Xác định "không hoạt động". –

+0

dòng không viết mới –

+0

@PavanPatidar: Nó đang viết một dòng mới. Chắc chắn. –

Trả lời

7

Đây có thể là sự cố của người xem ... Thử mở tệp trong EditPlus hoặc Notepad ++. Windows Notepad có thể không nhận ra nguồn cấp dữ liệu dòng của một hệ điều hành khác. Trong chương trình nào bạn đang xem tệp bây giờ?

+0

giải quyết vấn đề, cảm ơn Teddy .. –

9

Điều này sẽ hiệu quả. Có thể bạn đã quên gọi encfileout.flush().

Tuy nhiên, đây không phải là cách ưa thích để viết văn bản. Bạn nên quấn dòng đầu ra của bạn với PrintWriter và tận hưởng println() phương pháp của nó:

PrintWriter writer = new PrintWriter(new OutputStreamWriter(encfileout, charset)); 

Hoặc bạn có thể sử dụng FileWriter thay vì FileOutputStream từ đầu:

FileWriter fw = new FileWriter("myfile"); 
PrintWriter writer = new PrintWriter(fw); 

Bây giờ chỉ cần gọi

writer.println(); 

Và đừng quên gọi flush()close() khi bạn hoàn thành công việc của mình .

+0

Tôi hy vọng bạn không nhớ rằng tôi đã thêm tham số charset còn thiếu. –

+0

@ ChristofferHammarström, cảm ơn rất nhiều vì đã sửa chữa. – AlexR

+0

Cảm ơn nhưng điều này không phải tôi đang tìm kiếm .. –

Các vấn đề liên quan