2011-07-29 17 views
17

Tôi muốn viết một phương pháp tương tự như sauLàm cách nào để nối thêm vào một tệp trong Scala?

def appendFile(fileName: String, line: String) = { 
} 

Nhưng tôi không chắc chắn làm thế nào để xác thịt ra thực hiện. Một câu hỏi khác ở đây ám chỉ đến khả năng Scala 2.9 nhưng tôi không thể tìm thấy thêm chi tiết.

+0

Ngoài ra, hãy xem ví dụ thứ hai để thêm vào đây: http://stackoverflow.com/a/5218279/243233 – Jus12

Trả lời

31

Không có scala cụ thể IO thực hiện tại thời điểm này, mặc dù tôi hiểu one written by Jesse Eichar là trong ủ. Tôi không chắc chắn, mức độ này làm cho việc sử dụng API File (đường dẫn) mới trong JDK7. Bởi vì điều này, bây giờ tôi sẽ đi với Java đơn giản:

val fw = new FileWriter("test.txt", true) 
try { 
    fw.write(/* your stuff */) 
} 
finally fw.close() 
4
val fw = new FileWriter("test.txt", true) ; 
fw.write("This line appended to file!") ; 
fw.close() 
10

Câu hỏi là cũ, do đó, là câu trả lời. Tôi thấy cách này dễ dàng hơn:

scala.tools.nsc.io.File("filename").writeAll("hello world") 

hoặc

scala.tools.nsc.io.File("filename").appendAll("hello world") 

hoặc

scala.tools.nsc.io.Path("/path/to/file").createFile().appendAll("hello world") 

Tất nhiên cho conciseness hơn, bạn có thể nhập gói scala.tools.nsc.io và tránh lặp lại nó trong mã của bạn. Một lợi thế của việc sử dụng gói này là bạn không phải thêm bất kỳ thư viện phụ thuộc/bên ngoài nào (không giống như scala.io.file (Scalax) hoặc Apache Commons chẳng hạn).

Khoản tín dụng: Garett Hall, xem this.

+0

Đây không phải là API công khai và có thể bị xóa bất kỳ lúc nào, vì vậy đừng ngạc nhiên nếu mã phá vỡ một ngày. –

+0

Từ thư viện: Lưu ý: Thư viện này được coi là thử nghiệm và không nên được sử dụng trừ khi bạn biết mình đang làm gì. – soote

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