में स्ट्रिंग को बदलें, मैं पूरी फ़ाइल को स्मृति में पढ़ने के बिना फ़ाइल में स्ट्रिंग को प्रतिस्थापित करने का एक तरीका ढूंढ रहा हूं। आम तौर पर मैं एक रीडर और लेखक, यानी निम्नलिखित की तरह कुछ का प्रयोग करेंगे:फ़ाइल
public static void replace(String oldstring, String newstring, File in, File out)
throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(in));
PrintWriter writer = new PrintWriter(new FileWriter(out));
String line = null;
while ((line = reader.readLine()) != null)
writer.println(line.replaceAll(oldstring,newstring));
// I'm aware of the potential for resource leaks here. Proper resource
// handling has been omitted in the interest of brevity
reader.close();
writer.close();
}
हालांकि, मैं यथा-स्थान प्रतिस्थापन करना चाहते हैं, और नहीं लगता कि मैं एक रीडर और लेखक एक ही पर खुला हो सकता है एक साथ फ़ाइल। इसके अलावा, मैं जावा 1.4 का उपयोग कर रहा है, तो dont't NIO, स्कैनर, आदि के लिए उपयोग किया
धन्यवाद, डॉन
बस एफवाईआई, आपको पता है कि 'replaceAll' regex- आधारित है, है ना? यदि आप सीधे स्ट्रिंग शाब्दिक प्रतिस्थापन करना चाहते हैं (जैसा कि आपके औपचारिक पैरामीटर नाम सुझाव देते हैं), तो आप इसके बजाय 'प्रतिस्थापन (CharSequence, CharSequence)' विधि का उपयोग कर सकते हैं। – polygenelubricants
एक अस्थायी फ़ाइल में लिखने और फिर मूल को बदलने के बारे में क्या? – InsertNickHere