概述:程序中有时会需要从标准输入读取字符串作为文件的名字,其具体实现方法有许多种。我第一次尝试编写这方面的程序时遇到了“乱码问题”,后来使用了新的写法解决了乱码问题。
/*原码,使用这种方法编写的代码会出现“乱码问题” 乱码原因分析:从标准输入读取的数据先被存放至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";
时间: 2024-10-26 16:21:55