java基础--->文件操作--->实例---->从标准输入读取字符串作为文件名---->解决“文件名乱码”问题

概述:程序中有时会需要从标准输入读取字符串作为文件的名字,其具体实现方法有许多种。我第一次尝试编写这方面的程序时遇到了“乱码问题”,后来使用了新的写法解决了乱码问题。

/*原码,使用这种方法编写的代码会出现“乱码问题”
    乱码原因分析:从标准输入读取的数据先被存放至byte[]中,之后又将byte数组转成String,这个过程中就会出现编码不一致的问题
           如标准输入"file1",但是最终fileName=buffer.toString()的结果却是“@Bhjhj78i”
*/
            String fileName;//具体手势对应的frame数据存放到以该手势命名的文件中 byte[] buffer=new byte[50];//缓冲区,用于存放标准输入路径输入的文件名(也即手势名称) System.out.println("请输入手势名称,相应手势对应的Frame数据将会被存放至以该手势名称命名的文件中:例如,输入为gesture1时                        ,数据将会被存放至gesture1.txt文件中"); System.in.read(buffer); fileName=buffer.toString()+".txt"; //修改为,将程序改成如下形式就不会再出现乱码问题了 System.out.println("请输入手势名称,相应手势对应的Frame数据将会被存放至以该手势名称命名的文件中:例如,输入为gesture1                        时,数据将会被存放至gesture1.txt文件中"); BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); fileName = buf.readLine()+".txt";
学习的过程中总会得到一些心得体会,认真地将它们记录下来并分享给每一个愿意花费时间去阅读它们的人,然后意外地收获某个读者的评论,从而激发出新的感想,是一件十分令人欢快的事。如果你也在研习这方面的知识,欢迎加入到我们的队伍中来,和我们一起进步吧(^_^)
原文地址:https://www.cnblogs.com/lxrm/p/6096717.html