Tôi đã lấy đoạn trích này ra khỏi web. Nhưng có vẻ như bị giới hạn ở 4096 byte và IMO khá xấu xí. Có ai biết cách tiếp cận tốt hơn không? Tôi đang thực sự sử dụng Groovy btw ...Chuyển đổi luồng thành chuỗi Java/Groovy
String streamToString(InputStream input) {
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = input.read(b)) != -1;) {
out.append(new String(b, 0, n));
}
return out.toString();
}
EDIT:
Tôi tìm thấy một giải pháp tốt hơn trong Groovy:
InputStream exportTemplateStream = getClass().getClassLoader().getResourceAsStream("export.template")
assert exportTemplateStream: "[export.template stream] resource not found"
String exportTemplate = exportTemplateStream.text
Vì vậy, bạn đã kiểm tra các tài liệu _after_ yêu cầu? Ít nhất bạn có thể dán một ví dụ về việc sử dụng nó. – Anon
Tôi tiếp tục chăm sóc tôi hỏi tất nhiên, tôi không thấy phương pháp .text lúc đầu. Đây là đoạn mã: InputStream exportTemplateStream = getClass(). GetClassLoader().getResourceAsStream ("export.template") khẳng định exportTemplateStream: "[export.template stream] không tìm thấy tài nguyên" Chuỗi exportTemplate = exportTemplateStream.text –
đủ công bằng. Nhưng như tôi đã nói với những người khác: sử dụng các biến thể mà có một bộ ký tự rõ ràng - bộ ký tự mặc định là hiếm khi những gì bạn muốn. – Anon