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";
时间: 2024-10-26 16:21:55

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

Java底层代码实现单文件读取和写入(解决中文乱码问题)

需求: 将"E:/data/车站一次/阿坝藏族羌族自治州.csv"文件中的内容读取,写入到"E:/data//车站一次.csv". 代码: public class FileOpe { public static void main(String[] args) { sigle(); } public static void sigle(){ BufferedReader bufr = null; BufferedWriter bufw = null; try {

JAVA BufferedReader 类从标准输入读取数据

1,建立输入流: BufferedReader localReader = new BufferedReader( new InputStreamReader(System.in)); System.in 表示标准输入,一般指键盘. 建立输入流,从标准输入读取数据到缓冲区中. 当在标准输入中输入一行字符串时,按回车之后,这行数据就会被读取到缓冲区中. 比如: abc  \r\n(表示按下回车键) 那么msg就会赋值为 abc String msg = null; while ((msg = lo

黑马程序员---java基础--集合、数组、字符串的综合面试题

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 这道题综合了集合,数组,字符串,字符串缓冲区,自动装箱等知识点,你把这道题做会了,java基础你也就学的差不多了. 问题: 自定义一个段由小写字母组成的字符串统计每个字母出现的次数. 例如:abc,输出结果为:a(1)b(1)c(1) 代

黑马程序员--Java基础--文件数据IO操作

文件数据IO操作 1. Reader和Writer 1.1. 字符流原理 Reader是所有字符输入流的父类而Writer是所有字符输出流的父类.字符流是以字符(char)为单位读写数据的.一次处理一个unicode.字符流都是高级流,其底层都是依靠字节流进行读写数据的,所以底层仍然是基于字节读写数据的. 1.2. 常用方法 Reader的常用方法: int read() 读取一个字符,返回的int"值低16"位有效. int read(char[] chs) 从该流中读取一个字符数组

java基础复习(16)-字符串数组交集,并集和差集

package string; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class StringArray { public static void main(String[] args) { //测试union Str

java基础---&gt;文件---&gt;文件存放路径:绝对路径和相对路径

内容概述: 在实际的工程中,有时会需要存储一些文件,如存放一些图片.数据文件等,存放这些文件时考虑将这些文件存放在哪里. 通常有两种方法来获取文件存放路径: 方法一,获取系统有效盘符  如D:/,然后进行路径扩展,将扩展后的路径作为存放这些文件的根路径.这种方法有一个缺点,那就是在不同的操作系统中进行程序迁移时,会很麻烦: 方法二,获取当前文件夹(即程序工程目录)如d:/projectName,然后进行路径扩展,将扩展后的路径作为存放这些文件的根路径.最终存放程序文件的目录和程序代码目录在同一个

java===java基础学习(4)---字符串操作

java中的字符串操作和python中的大致相同,需要熟悉的就是具体操作形式. 关于具体api的使用,详见:java===字符串常用API介绍(转) package testbotoo; public class shuzhileixingzhuanhuan { public static void main(String[] args){ String greeting = "hello word"; //string 类的substring 方法可以实现字符串的提取,提取一个子串.

转载:java基础学习总结——java读取properties文件总结

java基础学习总结--java读取properties文件总结 一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResourceAsStream方法和InputStream流去读取properties文件,使用getResourceAsStream方法去读取properties文件时需要特别注意properties文件路径的写法,测试项目如下: 1.1.项目的

Java 基础(四)| IO 流之使用文件流的正确姿势

为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既然是流动也就会有方向,有入方向和出方向.举个上传文件的栗子,现在有三个对象,文件.应用程序.上传的目标地址(服务器).简化的上传文件有两步: 应用程序读文件