public static void main(String[] args) throws IOException
{
Scanner in = new Scanner(System.in);
String fileName = in.nextLine();
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("C:/temp/"+fileName+".txt"), "UTF-8"));//Ex thrown
out.close();
}
मैं एक लेखक बनाने की कोशिश कर रहा हूं जो चीनी वर्णों को फ़ाइल नाम से संभाल सकता है। इसलिए मैं उदाहरण के लिए 你好.txt
नामक फ़ाइल बना सकता हूं।चीनी वर्णों को एक फ़ाइल नाम
हालांकि मुझे उपरोक्त कोड के साथ FileNotFoundException
मिलता है, यह अंग्रेज़ी वर्णों के लिए बिल्कुल ठीक काम करता है लेकिन चीनी वर्णों के साथ नहीं।
मैंने उपरोक्त कोड का उत्पादन करने के लिए यहां दिए गए उत्तरों का पालन किया: How to write a UTF-8 file with Java? लेकिन यह काम नहीं करता है।
कोई भी जानता है कि मैं इसे कैसे पूरा कर सकता हूं?
स्टैक ट्रेस:
Exception in thread "main" java.io.FileNotFoundException: C:\temp\??.txt (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
NIO का उपयोग करना:
Path path = Paths.get("C:/temp/"+fileName+".txt");//throws ex
Charset charset = Charset.forName("UTF-8");
Path file = Files.createFile(path);
BufferedWriter bufferedWriter = Files.newBufferedWriter(file, charset);
bufferedWriter.close();
ढेर:
Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <?> at index 8: C:/temp/?.txt
at sun.nio.fs.WindowsPathParser.normalize(Unknown Source)
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPath.parse(Unknown Source)
at sun.nio.fs.WindowsFileSystem.getPath(Unknown Source)
at java.nio.file.Paths.get(Unknown Source)
मेरा मानना है कि यह ओएस-निर्भर है। ओएस का नियंत्रण फाइल नामों के रूप में तारों को अनुमति देने योग्य हैं। आप कौन सा ओएस उपयोग कर रहे हैं? अनुलेख ओएस की विशेष रूप से परवाह नहीं है कि फ़ाइल के डेटा में बाइट क्या हैं; यह उन ऐप्स पर निर्भर करता है जो फ़ाइलों को पढ़ते हैं। यही कारण है कि जिस लिंक का आपने अनुसरण करने का प्रयास किया वह आपकी मदद नहीं करेगा। – ajb
क्या आप कृपया स्टैकट्रेस प्रदान कर सकते हैं? –
@TAsk जोड़ा गया स्टैक ट्रेस और एसएससीई में संकेत दिया गया है जो लाइन – Aequitas