2010-08-29 30 views
5

Làm thế nào để bạn tạo ra một dòng mới trong FileWriter? Dường như "\ n" không hoạt động.Newline trong FileWriter

log = new FileWriter("c:\\" + s.getInetAddress().getHostAddress() + ".txt", true);  
log.append("\n" + Long.toString(fileTransferTime)); 
log.close(); 

Đầu ra tệp của mã ở trên chỉ là một chuỗi dài các số không có dòng mới.

+0

Là \ t trong dòng thứ hai một lỗi đánh máy hay cố ý? Vì \ n nên hoạt động - AFAIK. –

+2

Mã của bạn không bao gồm bất kỳ '\ n' nào. – whiskeysierra

+0

Xin lỗi, ý tôi là "\ n". Tôi đã thay đổi nó thành \ t vì nó có vẻ hoạt động. –

Trả lời

12

Tôi sẽ tự nhiên đoán rằng bạn đang mở tệp .txt trong Notepad, sẽ không hiển thị dòng mới chỉ với \n.

Bạn đã cố gắng sử dụng hệ thống cụ thể kết hợp ký tự xuống dòng của bạn?

log.append(System.getProperty("line.separator") + Long.toString(fileTransferTime)); 
+1

Cảm ơn vì những đóng góp của bạn! Chỉ cần phát hiện ra rằng Notepad không hiển thị "\ n" dòng mới trong khi các trình soạn thảo khác sẽ. System.getProperty ("line.separator") thực hiện công việc ngay cả khi được mở trong Notepad. –

1

Hãy thử thay đổi \t-\n trong dòng thứ hai.

4

Bạn nên hoặc đóng gói của bạn FileWriter thành một PrintWriter nếu mục tiêu của bạn là để có một nội dung formated, println() sẽ giúp bạn. Hoặc sử dụng thuộc tính hệ thống line.separator để có bộ phân tách phù hợp với Hệ điều hành của bạn.

System.getProperty("line.separator") 

Resources:

+0

Thanks a lot, System.getProperty ("line.separator") hoạt động. :) –

2

Tôi đang sử dụng "\ r \ n" và nó hoạt động tuyệt vời đối với tôi. Ngay cả khi mở tài liệu .txt bằng notepad;)

+1

Để được nền tảng độc lập, bạn không nên mã hóa điều này. Ví dụ. Các hệ thống Unix sử dụng '\ n'. Và đó là một sự xấu hổ mà rất nhiều người upvoted này như các câu trả lời khác là cách tốt hơn. – nkr

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