जवाबों:
String fileContents = new File('/path/to/file').text
यदि आपको वर्ण एन्कोडिंग निर्दिष्ट करने की आवश्यकता है, तो इसके बजाय निम्नलिखित का उपयोग करें:
String fileContents = new File('/path/to/file').getText('UTF-8')
File
वस्तु की उत्पत्ति एक साधारण जावा जार से हुई हो। मुझे यकीन नहीं था कि हो सकता है कि ग्रूवी File
की text
विशेषता या कुछ और के साथ अपना विशेष वर्ग था , लेकिन ऐसा लगता है कि यह कोई फर्क नहीं पड़ता कि File
वस्तु कहां से आती है, चाहे वह ग्रूवी कोड या जावा कोड द्वारा त्वरित हो।
सबसे छोटा रास्ता वास्तव में सिर्फ है
String fileContents = new File('/path/to/file').text
लेकिन इस मामले में आपके पास कोई नियंत्रण नहीं है कि फ़ाइल में बाइट्स को वर्णों के रूप में कैसे समझा जाता है। AFAIK ग्रूवी फ़ाइल सामग्री को देखकर यहाँ एन्कोडिंग का अनुमान लगाने की कोशिश करता है।
यदि आप एक विशिष्ट वर्ण एन्कोडिंग चाहते हैं, तो आप एक चारसेट नाम निर्दिष्ट कर सकते हैं
String fileContents = new File('/path/to/file').getText('UTF-8')
आगे के संदर्भ के लिए एपीआई डॉक्सFile.getText(String)
देखें ।
someFile.text
एक बुद्धिमान अनुमान नहीं लगाता है, यह बस प्लेटफ़ॉर्म डिफ़ॉल्ट एन्कोडिंग का उपयोग करता है (आमतौर पर आधुनिक लिनक्स पर UTF-8, लेकिन विंडोज़ / मैक ओएस पर विंडोज़ 1252 या MacRoman जैसा कुछ, जब तक आपने इसे ओवरराइड नहीं किया है -Dfile.encoding=...
)
थोड़ी भिन्नता ...
new File('/path/to/file').eachLine { line ->
println line
}
सबसे आसान तरीका होगा
जिसका मतलब है कि आप बस कर सकते हैं:
new File(filename).text
मेरे मामले में new File()
काम नहीं करता है, यह FileNotFoundException
जेनकींस पाइपलाइन कार्य में चलने पर कारण बनता है । निम्नलिखित कोड ने इसे हल किया, और मेरी राय में और भी आसान है:
def fileContents = readFile "path/to/file"
मैं अभी भी इस अंतर को पूरी तरह से नहीं समझता हूं, लेकिन शायद यह किसी और को भी उसी परेशानी में मदद करेगा। संभवतः इसका अपवाद था क्योंकि new File()
सिस्टम पर एक फ़ाइल बनाता है जो ग्रूवी कोड को निष्पादित करता है, जो कि उस फ़ाइल की तुलना में एक अलग प्रणाली थी जिसमें वह फ़ाइल होती है जिसे मैं पढ़ना चाहता था।
String fp_f = readFile("any_file") if (fp.length()) { currentBuild.description = fp }
इसके अलावा, यदि फ़ाइल नहीं मिली है, तो त्रुटि है।
यहाँ आप ऐसा करने के लिए कोई अन्य तरीका खोज सकते हैं।
फ़ाइल पढ़ें।
File file1 = new File("C:\Build\myfolder\myTestfile.txt");
def String yourData = file1.readLines();
पढ़ें पूरी फाइल
File file1 = new File("C:\Build\myfolder\myfile.txt");
def String yourData= file1.getText();
फ़ाइल लाइन बाय लाइन पढ़ें।
File file1 = new File("C:\Build\myfolder\myTestfile.txt");
for (def i=0;i<=30;i++) // specify how many line need to read eg.. 30
{
log.info file1.readLines().get(i)
}
एक नई फ़ाइल बनाएँ।
new File("C:\Temp\FileName.txt").createNewFile();
def
जब आप प्रकार निर्दिष्ट करते हैं, तो मुझे यकीन नहीं है कि आपको इसकी आवश्यकता है