Tôi muốn biết rằng nếu java/scala có "đối tượng chuỗi có thể hoạt động như tệp" như StringIO trong python? Tôi nghĩ rằng nó sẽ tốt hơn viết và đọc rất nhiều tập tin tạm thời. Tôi thích scala nhưng java một cũng nên tốt.Scala/java có một cái gì đó giống như StringIO từ python?
Trả lời
Điều đó tùy thuộc vào cách sử dụng tính năng này. Bạn thấy đấy, trong khi bạn làm nội dung với một tệp bằng Python, bạn không làm bất cứ điều gì với một số File
trong Java! Vâng, ngoài nhiệm vụ như kiểm tra sự cho phép, tạo vv
Tất cả các I/O trong Java và Scala được dựa trên một trong hai khái niệm:
InputStream
vàOutputStream
Reader
vàWriter
Điều bạn làm là tạo một một trong các lớp học này qua File
là thông số. Vì vậy, nếu bất kỳ API nào bạn đang sử dụng đều có ý định nhận được File
, bạn không thể làm bất kỳ điều gì về nó. Tuy nhiên, API thường sẽ thực hiện một trong các lớp ở trên, không phải là File
và tất cả chúng đều có sẵn phiên bản chuỗi.
Đối với Scala, cũng có scala.io.Stream
, bạn cũng có thể tạo một cái dựa trên String
.
Java có ByteArrayOutputStream.
OutputStream out = new ByteArrayOutputStream();
out.write(...);
String result = new String(out.toByteArray());
Tôi tin rằng StringWriter
là những gì bạn đang tìm kiếm.
Tôi không chắc đó có phải là những gì tôi đang tìm kiếm hay không. Tôi muốn biết nếu có một lớp mà tôi có thể thao tác như chuỗi nhưng cũng có thể sử dụng như là một đối số cho chức năng mà muốn tập tin như tham số. –
@ TT: Không, trong trường hợp đó không có gì bạn có thể làm, bởi vì File về cơ bản là một trình bao bọc xung quanh một đường dẫn, nó không có bất kỳ phương thức nào để truy cập nội dung. –
Ok sau đó. Tôi muốn sử dụng StringIO kể từ khi tôi sử dụng nó rất nhiều trong python. Tôi đoán tôi phải viết nó xuống đầu tiên. –
- 1. Có cái gì đó giống như Python 'với' trong C#?
- 2. MATLAB Có một cái gì đó giống như danh sách hiểu như nó là trong python?
- 3. Có cái gì đó giống như `last` cho` map`?
- 4. Có cái gì đó giống như WMI cho Linux?
- 5. Có cái gì đó giống như Incanter cho Haskell?
- 6. Ruby có một cái gì đó giống như sự hiểu biết danh sách của Python?
- 7. Có cái gì đó giống như máy phát điện Python trong Ruby?
- 8. Liệu python có một cái gì đó giống như C++ 's bằng cách sử dụng từ khóa?
- 9. Python: Một cái gì đó giống như `bản đồ` hoạt động trên các chủ đề
- 10. Do regexes Python hỗ trợ một cái gì đó giống như của Perl \ G?
- 11. Một cái gì đó như tăng :: multi_index cho Python
- 12. Có một cái gì đó giống như Sprocket tồn tại cho Java
- 13. Gson có một cái gì đó giống như @JsonProperty cho phương pháp?
- 14. Liệu Perl có một cái gì đó giống như Java/PHP Docs?
- 15. Một cái gì đó như Tryparse từ Convert.FromBase64String
- 16. là gì lệnh p4 tương đương với một cái gì đó giống như tình trạng svn
- 17. Một cái gì đó giống như một chức năng/phương pháp trong các tập tin batch?
- 18. Tôi có thể sử dụng cStringIO giống như StringIO không?
- 19. Tìm kiếm một cái gì đó giống như của JUnit @Before/@After trong MUnit
- 20. Một cái gì đó giống như chức năng đại biểu gọi lại trong php
- 21. là có cái gì đó giống như isset của php trong javascript/jQuery?
- 22. Vim cho Word (hoặc một cái gì đó giống như nó)
- 23. Có điều gì đó giống như Codecademy cho Java
- 24. C++ literals vector, hoặc một cái gì đó giống như họ
- 25. ReSharper (hoặc một cái gì đó giống như nó) cho Qt?
- 26. Có cái gì đó giống như IIS 6.0 Resource Kit Tools cho IIS 7?
- 27. Có cái gì đó giống như strall Linux ptrace trong Windows?
- 28. Bất cứ ai cũng biết một cái gì đó giống như RSPec cho PHP?
- 29. Có điều gì đó giống như find_if trong Java không?
- 30. Cái gì đó tương tự như split()?
Mục đích của tôi là vì dữ liệu được tạo ra trong java/scala, tôi chỉ không muốn ghi nó trên đĩa của tôi trước khi chuyển nó sang một hàm khác yêu cầu tệp (mà, tôi không có nguồn.). Nhưng tôi sẽ ghi nhớ điều đó khi viết mã của riêng tôi. Cảm ơn lời giải thích rõ ràng. –