फाइल मैं एक अजीब समस्या है।FileInputStream बनाम ClassPathResource getResourceAsStream बनाम और अखंडता
मुझे क्या यदि यह:
InputStream is = new ClassPathResource("template.xlsx").getInputStream();
या इस:
InputStream is = ClassLoader.getSystemResourceAsStream("template.xlsx");
या इस:
InputStream is = getClass().getResourceAsStream("/template.xlsx");
जब मैं किसी कार्यपुस्तिका बनाने का प्रयास करें:
Workbook wb = new XSSFWorkbook(is);
मैं इस त्रुटि मिलती है:
java.util.zip.ZipException: invalid block type
लेकिन, जब मैं इस तरह मेरी फाइल मिलती है:
InputStream is = new FileInputStream("C:/.../src/main/resources/template.xlsx");
यह काम करता है!
क्या गलत है? मैं फ़ाइल में फुलपाथ हार्डकोड नहीं कर सकता।
क्या कोई इस से मेरी सहायता कर सकता है?
धन्यवाद
क्या आप यह सुनिश्चित कर सकते हैं कि जब आप क्लासपाथ से लोड करते हैं * पूरी तरह से * सुनिश्चित हैं कि 'template.xlsx' का कौन सा संस्करण लोड किया जा रहा है? एक 'getResourceAsStream() '(और जैसा) कई स्थानों से संसाधन लोड कर सकता है। फ़ाइल नाम के साथ आप पूरी तरह से सुनिश्चित हैं कि क्या लोड किया जा रहा है। –