2010-05-14 11 views
5

डाउनलोड न करें मुझे एफ़टीपी से सीएसवी फ़ाइल हेडर पढ़ने की जरूरत है।जावा। एफ़टीपी से फ़ाइल पढ़ें लेकिन इसे पूरे

चूंकि ये फ़ाइलें बहुत बड़ी हो सकती हैं, मुझे उन्हें डाउनलोड करने की आवश्यकता नहीं है।

क्या एफ़टीपी से सीएसवी फ़ाइल की पहली पंक्ति पढ़ने और कनेक्शन को निरस्त करने का कोई तरीका है?

उत्तर

12

बस केवल पहली पंक्ति पढ़ें, अवशेष को अनदेखा करें और स्ट्रीम बंद करें। एक स्मार्ट एफ़टीपी क्लाइंट पढ़ने के लिए कुछ भी प्रदान करने से पहले स्मृति में संपूर्ण स्ट्रीम बफर नहीं करेगा।

मान लिया जाये कि आप Apache Commons NetFTPClient उपयोग कर रहे हैं:

BufferedReader reader = null; 
String firstLine = null; 

try { 
    InputStream stream = ftpClient.retrieveFileStream(ftpFile.getName()); 
    reader = new BufferedReader(new InputStreamReader(stream, "UTF-8")); 
    firstLine = reader.readLine(); 
} finally { 
    if (reader != null) try { reader.close(); } catch (IOException logOrIgnore) {} 
} 

doYourThingWith(firstLine); 
संबंधित मुद्दे