昨天突然下了个Java项目,把项目导入到eclipse中,发现项目是gbk编码格式想把项目变为utf-8,但是发现转换格式比较麻烦就写了这个代码,后面改进了下,想到说不定有人也需要就把它写了出来

代码如下

代码比较简单看懂了自己可以写一下,可以当做一个关于io流的一个练习

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

import java.util.Scanner;

/**

* 把gbk编码的程序变换为用utf-8的格式编码

*

* 此程序只是为了改变 .java文件的编码格式如果你想要变换为其他格式只需要改变下面对应的编码按格式

*

* @author ylg

*/

public class Files {

/**

*

* @param args

* @throws UnsupportedEncodingException

* @throws IOException

*/

public static void main(String[] args) throws UnsupportedEncodingException, IOException {

Scanner scan = new Scanner(System.in);

System.out.println("请输入需要改变编码格式的文件位置");

String str = scan.nextLine();

File file = new File(str);

System.out.println("文件的初始编码");

String bm1 = scan.nextLine();

System.out.println("文件需要转换成的编码");

String bm2 = scan.nextLine();

getAllFiles(file, bm1, bm2);

}

/**

*

* @param file 要编译的文件

* @param bm1 文件的初始编码

* @param bm2 文件需要转换成的编码

* @throws FileNotFoundException 文件找不到

* @throws UnsupportedEncodingException 编码出错

* @throws IOException io异常

*/

public static void getAllFiles(File file, String bm1, String bm2) throws FileNotFoundException, UnsupportedEncodingException, IOException {

if (file.isDirectory()) {

File[] test = file.listFiles();

for (File test1 : test) {

//类的名字

String str = test1.getPath();

if (str.endsWith("java") & test1.isFile()) {

String[] s = str.split("\\.");

String filecope = s[0] + "cope." + s[1];

System.out.println(filecope);

File fil = new File(filecope);

//转格式

InputStreamReader isr = new InputStreamReader(new FileInputStream(test1), bm1);

OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(fil), bm2);

int re = -1;

while ((re = isr.read()) != -1) {

osr.write(re);

}

isr.close();

osr.close();

InputStreamReader isrr = new InputStreamReader(new FileInputStream(fil), bm2);

OutputStreamWriter osrw = new OutputStreamWriter(new FileOutputStream(test1), bm2);

int r = -1;

while ((r = isrr.read()) != -1) {

osrw.write(r);

}

isrr.close();

osrw.close();

boolean d = fil.delete();

System.out.println(str + "文件转换utf-8成功:" + d);

}

getAllFiles(test1, bm1, bm2);

}

}

}

}

写的不好的地方大家可以说一下共同学习!

Java实现gbk utf8 转换_java项目编码格式转换(如GBK转UTF-8)相关推荐

  1. iconv php gbk utf8,PHP通过iconv将字符串从GBK转换为UTF8字符集

    PHP通过iconv将字符串从GBK转换为UTF8字符集的方法,需要的朋友可以参考下. 1. iconv()介绍 iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件.例如:从GB23 ...

  2. hkt java 怎么转换_Java基础教程——转换流

    转换流 通常,Window默认的编码方式是GBK,Java项目一般建议设为UTF-8编码.这时候读取文件可能出现乱码.事实上实际应用中编码格式不匹配的场景非常多. 转换流可以指定编码方式,用于解决乱码 ...

  3. JAVA字码的转换_java字符编码转换研究(转)

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

  4. java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现

    原标题:Java项目实战第11天:搜索功能的实现 今天是刘小爱自学Java的第110天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 事先说明:关于今天的搜索功能实现. 并没有使用到倒排索引这 ...

  5. java url地址编码转换_java url编码转换

    [转载于:  因为在做链接来源统计的时候需要把 http://www.baidu.com/baiduword=%D6%D0%B9%FA%B4%F3%B0%D9%BF%C6%D4%DA%CF%DF%C8 ...

  6. java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法

    Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static Stri ...

  7. java定义时间格式大全_Java时间格式转换大全

    package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...

  8. java线程主要状态及转换_Java线程状态转换及控制

    线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞(Blocked)和死亡(Dead)这五 ...

  9. java窗体添加背景图片_Java项目实战之实战之天天酷跑(四):游戏主界面

    接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能.五种障碍物持续出现.玩家和障碍物的碰撞.暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gif ...

最新文章

  1. 图像零交叉点,视频生成,视频识别,视频摘要,视频浓缩
  2. SQLite第三方框架FMDB的使用,以及使用FMDatabaseQueue保证线程安全
  3. 干货 | 大数据人工智能领域从菜鸟到高手晋级指南
  4. hdu 1281 棋盘游戏 (二分匹配)
  5. 深入理解ob_flush和flush的区别(转)
  6. 二、oracle sql*plus常用命令
  7. 使用Lua 局部变量来优化性能,同一时候比較局部变量和全局变量
  8. 每天一个实用小技巧!巧妙利用Mac标记,分类同类文件
  9. 数据库学习入门(转)
  10. win10安装配置nginx
  11. java 通过经纬度计算巨鹿,全国经纬度汇总表(全)
  12. 小窗终曲说策划(有空就看看吧,可能对设计想法有所帮助,不仅仅是游戏方面
  13. 集成 React Native 到现有Android项目
  14. Python 训练 Day 15
  15. 中国身份证号码验证,支持15 18位,可验证成功90 的身份证号
  16. win10刚安装linux黑屏,win10 + Ubuntu18.04 双系统,UEFI+GPT,从win10切换到Ubuntu时黑屏问题...
  17. iOS - 监控键盘高度、屏蔽字符、限制字符个数
  18. php lumen和laravel,Laravel 还是 Lumen?
  19. 大数据算法培养计划!
  20. C语言打印cav,最近大热的Cav Empt(C.E),你了解?

热门文章

  1. java 合并流_使用流执行聚合
  2. 安卓 屏蔽子控件点击事件
  3. Kibana远程代码执行漏洞攻击方法和漏洞原理分析
  4. 160个Crackme024之Opcode加密
  5. MySQL FLOAT、DOUBLE、DECIMAL(小数类型)
  6. Linux 手动或自动挂载 NTFS 硬盘
  7. 2、JDBC连接数据库
  8. 1.12 声明自定义异常
  9. python中使用ElementTree 操作XML
  10. Mybatis的prefix和suffix使用