में कन्स्ट्रक्टर की पहली पंक्ति नहीं हो सकता है, तो मैं एक CSVReader क्लास का उपयोग कर रहा हूं जो स्थानीय फ़ाइल को इनपुट के रूप में लेता है। लेकिन अब, मुझे स्थानीय फाइलों के साथ-साथ यूआरएल पथ वाली फाइलें पढ़ने में सक्षम होना चाहिए (जैसे http://example.com/example.txt)। ऐसा करने के लिए, मैं CSVReader से एक क्लास प्राप्त करना चाहता हूं जो यह पहचानता है कि फ़ाइल स्थानीय या यूआरएल है या फिर कन्स्ट्रक्टर की पहली पंक्ति में सुपर() का उपयोग करके माता-पिता को इनपुटस्ट्रीम पास करें। ऐसा करने का सुरुचिपूर्ण तरीका क्या है?समाधान जब जावा जावा
public class FileReader extends CsvReader{
public FileReader(){
if (fileName != null) {
if (fileName.trim().startsWith("http:")) {
// it is URL
URL url = new URL(fileName);
inputStream = new BufferedReader(new InputStreamReader(
url.openStream(), charset),
StaticSettings.MAX_FILE_BUFFER_SIZE);
}else{
//it is a local file
inputStream = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName), charset),
StaticSettings.MAX_FILE_BUFFER_SIZE);
}
}
//Now pass the input stream to CsvReader
super(inputStream, delimiter, charset); //error - super has to be first line of constructor
}
}
कृपया अपने वर्गों को समान नामों के साथ-साथ जाने-माने वर्गों को भी न कहें। एन जेडीके। आप किसी को भी बहुत भ्रम पैदा करने जा रहे हैं, बहुत संभवतः खुद। – EJP