java读取csv乱码解决及java读取csv全部代码<搬代码>

该代码段展示了如何使用Java的BufferedReader和InputStreamReader处理GBK编码的CSV文件。通过指定GBK编码,能正确读取非UTF-8格式的乱码内容,逐行解析文件并分配给相应变量进行处理。

1.首先看乱码结果和代码
因为没有GBK,如何加入GBK如下

BufferedReader reader = new BufferedReader(new FileReader(file));

查看结果:
1
2.加入GBK

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));

查看结果:
2
读入csv全部代码:

	@Test
    public  void kaihucsv() throws IOException, InterruptedException {
		//地址
        File file = new File("src/main/java/com/znzdh/until/kaihucsv.csv");
		//BufferedReader读取
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
        //创建一个空的一行准备接收
        String line ="";
		//创建接收字段
        String dalishang=null;
        String shoujihao=null;
        String yaoqingma=null;
        String jigoumingcheng=null;
        String yingyezhizhao=null;
        String youxiang=null;
        String lianxidianhua=null;
        String lianxidizhi=null;
        String xingming=null;
        String shenfenzhenghao=null;
        String shenfendizhi=null;
        String qianfajiguan=null;
        String timestart=null;
        String timeout=null;
        String yinhangkahao=null;
        String jiesuanyinhang=null;
        String zhihang=null;
        String yuliushoujihao=null;
        String yuliushenfenzheng=null;
        String huming=null;
		//接收循环遍历
        while ((line=reader.readLine()) != null){
            String[] split = line.split(",");
            System.out.println(split[0]);
            dalishang=split[0];
            shoujihao=split[1];
            yaoqingma=split[2];
            jigoumingcheng=split[3];
            yingyezhizhao=split[4];
            youxiang=split[5];
            lianxidianhua=split[6];
            lianxidizhi=split[7];
            xingming=split[8];
            shenfenzhenghao=split[9];
            shenfendizhi=split[10];
            qianfajiguan=split[11];
            timestart=split[12];
            timeout=split[13];
            yinhangkahao=split[14];
            jiesuanyinhang=split[15];
            zhihang=split[16];
            yuliushoujihao=split[17];
            yuliushenfenzheng=split[18]
            huming=split[19];
            //输出
            System.out.println(dalishang+","+shoujihao+","+yaoqingma+","+
                    jigoumingcheng+","+yingyezhizhao+","+youxiang+","+lianxidianhua+","+lianxidizhi+","+
                    xingming+","+shenfenzhenghao+","+shenfendizhi+","+ qianfajiguan+","+
                    timestart+","+timeout+","+ yinhangkahao+","+jiesuanyinhang+","+
                    zhihang+","+yuliushoujihao+","+yuliushenfenzheng+","+huming);
			
    }
### Java 读取 CSV 文件解决乱码问题 当遇到Java读取CSV文件时出现的乱码问题,主要原因是编码不一致所引起的。为了确保能够正确无误地读取CSV文件的内容而不发生字符错位或显示异常的情况,在操作过程中应当指定正确的字符集。 对于CSV文件,默认情况下可能是ANSI编码,而程序内部通常采用UTF-8或其他编码标准进行数据处理。因此,在打开文件流之前,应该明确指明预期使用的字符编码方式。下面给出了一种利用`InputStreamReader`配合特定编码参数的方式来进行文件读取的操作实例[^1]: ```java import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; public class CsvReadExample { public static void main(String[] args) throws Exception { String path = "d:\\example.csv"; try (BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(path), "GBK"))) { // 使用GBK代替ANSI编码 String line; while ((line = br.readLine()) != null) { System.out.println(line); } } } } ``` 上述代码片段展示了如何通过设置合适的字符编码(此处选用GBK作为例子),从而避免因编码差异而导致的数据混乱现象。当然,实际应用中还需要依据具体环境下的文件编码情况调整相应的编码名称。 另外一种更为通用的做法是在不知道确切源文件编码的情况下尝试自动检测其编码类型,并将其转换为目标统一的标准编码形式——比如UTF-8。这可以通过第三方工具类库完成,如ICU4J提供的功能支持[^5]。 最后值得注意的是,如果项目允许的话,建议尽可能保持所有涉及文本交换环节的一致性,即从源头上保证各阶段都遵循相同的编码规则,这样可以极大程度减少由于不同平台间编码习惯造成的兼容性难题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值