जावा प्रोग्रामिंग में फ़ाइल से लाइन ब्रेक को कुशलतापूर्वक हटाना एक सामान्य कार्य है। यह अक्सर फ़ाइल सामग्री को संसाधित करते समय उत्पन्न होता है जिसे अलग-अलग लाइनों के बजाय एकल, निरंतर स्ट्रिंग के रूप में माना जाना चाहिए। यह लेख इसे प्राप्त करने के लिए तीन अलग-अलग जावा विधियों का पता लगाता है, प्रत्येक की अपनी ताकत और कमजोरियाँ हैं।
विषय सूची
replace()
विधि का उपयोग करनाSystem.lineSeparator()
का लाभ उठाना- नियमित अभिव्यक्तियों के साथ
replaceAll()
विधि को नियोजित करना
replace()
विधि का उपयोग करना
सबसे सरल तरीका अंतर्निहित replace()
स्ट्रिंग विधि का उपयोग करता है। यह सुसंगत लाइन ब्रेक शैली वाली फ़ाइलों के लिए सरल है। हालाँकि, जब लाइन ब्रेक अनुक्रमों के मिश्रण वाली फ़ाइलों (जैसे, विंडोज़ पर “rn”, लिनक्स/macOS पर “n”) से निपटने की बात आती है, तो यह कम कुशल हो जाता है और कई replace()
कॉलों की श्रृंखला की आवश्यकता होती है।
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class RemoveLineBreaksReplace {
public static String removeLineBreaks(String filePath) throws IOException {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line);
}
}
// rn और n लाइन ब्रेक निकालें
return content.toString().replace("rn", "").replace("n", "");
}
public static void main(String[] args) {
String filePath = "myFile.txt"; // अपनी फ़ाइल पथ से बदलें
try {
String result = removeLineBreaks(filePath);
System.out.println(result);
} catch (IOException e) {
System.err.println("एक त्रुटि हुई: " + e.getMessage());
}
}
}
System.lineSeparator()
का लाभ उठाना
उन्नत प्लेटफ़ॉर्म स्वतंत्रता के लिए, System.lineSeparator()
वर्तमान ऑपरेटिंग सिस्टम के लिए डिफ़ॉल्ट लाइन सेपरेटर प्रदान करता है। यह विधि गतिशील रूप से सिस्टम के लाइन ब्रेक कन्वेंशन के अनुकूल होती है, जिससे पोर्टेबिलिटी में सुधार होता है।
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class RemoveLineBreaksLineSeparator {
public static String removeLineBreaks(String filePath) throws IOException {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line);
}
}
return content.toString().replace(System.lineSeparator(), "");
}
public static void main(String[] args) {
String filePath = "myFile.txt"; // अपनी फ़ाइल पथ से बदलें
try {
String result = removeLineBreaks(filePath);
System.out.println(result);
} catch (IOException e) {
System.err.println("एक त्रुटि हुई: " + e.getMessage());
}
}
}
नियमित अभिव्यक्तियों के साथ replaceAll()
विधि को नियोजित करना
सबसे मजबूत समाधान नियमित अभिव्यक्ति \R
के साथ replaceAll()
विधि को नियोजित करता है। यह विभिन्न ऑपरेटिंग सिस्टम और एन्कोडिंग योजनाओं में व्यापक निष्कासन सुनिश्चित करते हुए, सभी यूनिकोड लाइन ब्रेक विविधताओं को कुशलतापूर्वक संभालता है।
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class RemoveLineBreaksReplaceAll {
public static String removeLineBreaks(String filePath) throws IOException {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line);
}
}
// सभी लाइन ब्रेक से मेल खाने के लिए नियमित अभिव्यक्ति
return content.toString().replaceAll("\R", "");
}
public static void main(String[] args) {
String filePath = "myFile.txt"; // अपनी फ़ाइल पथ से बदलें
try {
String result = removeLineBreaks(filePath);
System.out.println(result);
} catch (IOException e) {
System.err.println("एक त्रुटि हुई: " + e.getMessage());
}
}
}
अपनी वास्तविक फ़ाइल पथ के साथ `”myFile.txt”` को बदलना याद रखें। उत्पादन-तैयार कोड के लिए मजबूत त्रुटि हैंडलिंग महत्वपूर्ण है।