2011-12-19 31 views
40

Tôi có một phương thức đọc một tệp và trả về một chuỗi, nhưng tôi muốn trả về một trình đọc. Tôi muốn chuyển đổi chuỗi thành người đọc hoặc tôi muốn đọc tệp và trả về trình đọc. Tôi có thể làm cái này như thế nào?Cách chuyển đổi chuỗi thành Reader trong java

+0

Trình đọc chuỗi hoạt động tốt. Tôi đã sử dụng filereader thay vì viết phương pháp của riêng tôi, điều này đơn giản hơn. (Reader) FileReader mới (filePath); – Arasu

Trả lời

84

Sử dụng java.io.StringReader: return new StringReader(string);.

Lần tiếp theo bạn cần trình đọc, bạn có thể kiểm tra "Lớp con được biết trực tiếp" của lớp Reader. Tương tự như vậy cho InputStream, vv Nơi bắt đầu là javadoc - nó chứa khá nhiều thông tin hữu ích.

Nhưng đối với nhiệm vụ của bạn, bạn nên làm theo lời khuyên của Jon Lin chỉ đơn giản bằng cách sử dụng FileReader. Không cần phải đi qua String. (Đối với điều đó, lời khuyên của tôi từ đoạn trước cũng được áp dụng)

+0

Tôi muốn thêm rằng nếu bạn đang sử dụng Eclipse, việc kéo lên cây của tất cả các lớp con đã biết cho bất kỳ loại nào cũng dễ dàng như nhấn F4 khi con trỏ ở trên loại (ví dụ: 'Reader'). Tôi đoán các IDE khác được trang bị tương tự. Rất hữu ích trong những tình huống này. – pwrex

+0

Điều này trả lời câu hỏi * theo nghĩa đen * trong tiêu đề và có lẽ là lý do tại sao 90% đến đây. Nhưng ** @ JonLin ** của câu trả lời có một giải pháp tốt hơn cho tình hình cụ thể được mô tả bởi OP. –

8

Bạn có thể sử dụng StringReader lớp học từ gói java.io.

String stringToBeParsed = "The quick brown fox jumped over the lazy dog"; 
StringReader reader = new StringReader(stringToBeParsed); 
+16

"* jumpS *", không phải "* jumpED *", nếu không không phải tất cả 26 ký tự đều được sử dụng ;-). –

9

Hoặc bạn chỉ cần tạo FileReader và trả lại điều đó.

+1

lý do tại sao FileReader? – Bozho

+0

Ông nói rằng ông có một phương pháp mà đọc một tập tin và ông muốn trả lại một Reader thay vì một String –

+1

ohh .. có. nhớ điều đó, cảm ơn. Và +1 – Bozho

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