2011-07-29 14 views
17

मैं एक विधि निम्नलिखितमैं स्कैला में एक फ़ाइल में कैसे जोड़ूं?

def appendFile(fileName: String, line: String) = { 
} 

के लिए इसी तरह लिखना चाहते हैं लेकिन मुझे यकीन है कार्यान्वयन बाहर मांस के लिए कैसे नहीं हूँ। यहां पर एक और सवाल स्कैला 2.9 क्षमताओं को दर्शाता है लेकिन मुझे और विवरण नहीं मिल सका।

+0

यहां शामिल करने के लिए दूसरा उदाहरण भी देखें: http://stackoverflow.com/a/5218279/243233 – Jus12

उत्तर

31

इस समय कोई स्केला विशेष आईओ कार्यान्वयन, हालांकि मैं समझता हूँ one written by Jesse Eichar ऊष्मायन में है। मुझे यकीन नहीं है, यह किस हद तक जेडीके 7 में नई फ़ाइल (पथ) एपीआई का उपयोग करता है। इस वजह से, अब मैं सरल जावा के साथ जाऊंगा:

val fw = new FileWriter("test.txt", true) 
try { 
    fw.write(/* your stuff */) 
} 
finally fw.close() 
4
val fw = new FileWriter("test.txt", true) ; 
fw.write("This line appended to file!") ; 
fw.close() 
10

प्रश्न पुराना है, तो जवाब भी हैं। मैं इस तरह से आसान लगता है:

scala.tools.nsc.io.File("filename").writeAll("hello world") 

या

scala.tools.nsc.io.File("filename").appendAll("hello world") 

या

scala.tools.nsc.io.Path("/path/to/file").createFile().appendAll("hello world") 

अधिक संक्षिप्तता के लिए बेशक, आप scala.tools.nsc.io पैकेज आयात और इसे अपने कोड में दोहरा बच सकते हैं। इस पैकेज का उपयोग करने का एक फायदा यह है कि आपको किसी बाहरी निर्भरता/पुस्तकालय को जोड़ने की आवश्यकता नहीं है (उदाहरण के लिए scala.io.file (Scalax) या अपाचे कॉमन्स के विपरीत)।

क्रेडिट: Garett हॉल, this देखते हैं।

+0

यह एक एपीआई सार्वजनिक नहीं है, और किसी भी समय हटाया जा सकता है, इसलिए आश्चर्यचकित न हों अगर आपका आश्चर्य है कोड एक दिन तोड़ता है। –

+0

लाइब्रेरी से: नोट: इस लाइब्रेरी को प्रयोगात्मक माना जाता है और तब तक इसका उपयोग नहीं किया जाना चाहिए जबतक कि आप यह नहीं जानते कि आप क्या कर रहे हैं। – soote

संबंधित मुद्दे