मेरे प्रोग्राम में मेरे पास लूप है जो फ़ाइलों का एक समूह स्कैन करता है और उनकी सामग्री को पढ़ता है। समस्या लगभग 1500 फ़ाइलों की यात्रा से अधिक हुआ है और (या समझ में आ (मेरे द्वारा)) पुनः प्रस्तुत किया जाना नहीं कर पा रहेबहुत अधिक खुली फ़ाइल त्रुटि, java.io.FileNotFoundException
समस्या:
java.io.FileNotFoundException: /path/to/file//myFile (Too many open files)
अपवाद इस विधि को अंक:
private static String readFileAsRawString(File f) throws IOException {
FileInputStream stream = new FileInputStream(f); // <------------Stacktrace
try{
FileChannel fc = stream.getChannel();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
return Charset.defaultCharset().decode(bb).toString();
} finally {
stream.close();
}
}
मैंने इस विधि को क्यूए में 20,000 से अधिक फाइलों में भाग लिया और ऐसा कोई समस्या नहीं है।
क्या आप ऊपर दिए गए कोड के साथ कुछ भी गलत देखते हैं जो इस मुद्दे का कारण बनता है?
क्या आपने दोनों वातावरणों में एक ही ओएस का उपयोग किया था (क्यूए और जो असफल रहा?) – SJuan76
नहीं। उत्पादन प्रणाली लिनक्स है, मेरे परीक्षण मैक – JAM
फ़ाइल को बंद करने से पहले डेटा लौट रहे हैं। शायद समस्या का कारण बन रहा है। अंत में ब्लॉक के बाद वापसी रखने का प्रयास करें। – Romaan