আমার একটি ইনপুট স্ট্রিম রয়েছে যা আমি কিছু প্রক্রিয়াজাতকরণ করার পদ্ধতিতে পাস করি। আমি অন্য পদ্ধতিতে একই ইনপুটস্ট্রিম ব্যবহার করব, তবে প্রথম প্রক্রিয়াজাতকরণের পরে, ইনপুটস্ট্রিমটি পদ্ধতির অভ্যন্তরে বন্ধ হয়ে যায়।
তাকে বন্ধ করে দেওয়া পদ্ধতিতে আমি কীভাবে ইনপুট স্ট্রিমটি ক্লোন করতে পারি? এর আরেকটি সমাধান কি আছে?
সম্পাদনা করুন: যে পদ্ধতিগুলি ইনপুট স্ট্রিমটি বন্ধ করে দেয় সেগুলি হ'ল একটি বাহ্যিক পদ্ধতি। বন্ধ বা না করা সম্পর্কে আমার নিয়ন্ত্রণ নেই।
private String getContent(HttpURLConnection con) {
InputStream content = null;
String charset = "";
try {
content = con.getInputStream();
CloseShieldInputStream csContent = new CloseShieldInputStream(content);
charset = getCharset(csContent);
return IOUtils.toString(content,charset);
} catch (Exception e) {
System.out.println("Error downloading page: " + e);
return null;
}
}
private String getCharset(InputStream content) {
try {
Source parser = new Source(content);
return parser.getEncoding();
} catch (Exception e) {
System.out.println("Error determining charset: " + e);
return "UTF-8";
}
}