`
cqh520llr
  • 浏览: 509912 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

java 文本文件 另存为 ANSI UTF-8

 
阅读更多
D盘新建一文本文件,默认另存为 编码为ANSI

public static void main(String[] args) throws IOException {
		File src = new File("D://test.txt");
		File dest = new File("D://model//test.txt");
		copyFile(src, dest);
	}
	
	public static void copyFile(File src, File dest) throws IOException {
		BufferedReader br = new BufferedReader(new FileReader(src));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest),"utf-8"));
		char[] b = new char[1024 * 5];
        int len;
        while ((len = br.read(b)) != -1) {
            bw.write(b, 0, len);
        }
        bw.flush();
        br.close();
        bw.close();
	}
代码运行之后,
D盘model目录下的test.txt另存为 编码为UTF-8





package com.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class Main {
	private String DIR_HOME_OLD = "D://model";
	private String DIR_HOME_NEW = "D://model_bak";
	
	/** 
	 * 盘符获取指定文件
	 * @param dir
	 */
	private List<File> findFile(String dir) {
		String patternDate = format();
		File targetDir = new File(dir);
		File[] files = targetDir.listFiles();
		String fileName = null;
		List<File> targetFile = new ArrayList<File>();
		for (File file : files) {
			if (file.isFile()) {
				fileName = file.getName();
				if (fileName.contains(patternDate)) {
					targetFile.add(file);
				}
			}
		}
		return targetFile;
	}
	
	/** 
	 * 是否存在新文件夹中
	 * @param file
	 * @return
	 */
	private boolean exist(File file) {
		File src = new File(DIR_HOME_NEW);
		String[] fileNames = src.list();
		for (String fileName : fileNames) {
			if (fileName.equals(file.getName())) {
				return true;
			}
		}
		return false;
	}
	
	/**
	 * 定时转化文件
	 */
	private void task() {
		Timer timer = new Timer();
		TimerTask task = new TimerTask() {
			@Override
			public void run() {
				List<File> targetFile = findFile(DIR_HOME_OLD);
				for (File file : targetFile) {
					if (!exist(file)) {
						try {
							copyFile(file, new File(DIR_HOME_NEW + "//" + file.getName()));
							System.out.println(file.getName() + "拷贝成功!");
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				}
			}
		};
		timer.schedule(task, 1000, 1000 * 60 * 60);//一个小时运行一次
	}
	
	/** 
	 * 获取当天的日期YYYYMMDD格式
	 */
	private String format() {
		return new SimpleDateFormat("yyyyMMdd").format(new Date());
	}
	
	/**
	 * 复制文件到另一文件
	 * @param src
	 * @param dest
	 * @throws IOException
	 */
	private void copyFile(File src, File dest) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(src),"utf-8"));
		//BufferedWriter bw = new BufferedWriter(new FileWriter(dest));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest),"Unicode"));
// 刚开始在本地可以,在服务器上面居然变成Unicode big endian,可以把这里替换
// Unicode   --  x-UTF-16LE-BOM
//BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new //FileOutputStream(dest),"x-UTF-16LE-BOM"));
		char[] b = new char[1024 * 5];
        int len;
        while ((len = br.read(b)) != -1) {
            bw.write(b, 0, len);
        }
        bw.flush();
        bw.close();
        br.close();
	}
	
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) {
		new Main().task();
	}

}

分享到:
评论

相关推荐

    批量将文件编码方式由ansi转为utf-8

    标题"批量将文件编码方式由ansi转为utf-8"涉及到的是一个文件处理任务,即转换大量以ANSI编码存储的文件到UTF-8编码。这通常是由于ANSI编码不支持某些非英文字符,或者在跨平台交互时可能会遇到问题,而UTF-8编码则...

    UTF-8转ANSI文本文件转换器

    "UTF-8转ANSI文本文件转换器"就是这样一个工具,它能够帮助用户批量将UTF-8编码的文本文件转换为ANSI编码的文本文件。在此,我们将深入探讨UTF-8和ANSI编码的原理以及转换过程中涉及的关键知识点。 **一、UTF-8编码...

    文本文件编码转换:ANSI、Unicode、UTF-8相互转换(修改版)

    ANSI --&gt; UTF-8 Unicode --&gt; ANSI Unicode --&gt; UTF-8 UTF-8 --&gt; ANSI UTF-8 --&gt; Unicode UTF-8 --&gt; Unicode big endian ansi转别的,不检验BOM,一律作为ansi编码进行转换 unicode转别的,首先检验BOM,不合格不...

    VB中ANSI转换成UTF-8

    本文将深入探讨如何在VB中将ANSI编码转换为UTF-8编码,以及在实际应用中的网络编程基础知识,特别是利用Winsock控件实现简单的聊天程序。 首先,理解ANSI和UTF-8的区别至关重要。ANSI编码,通常指的是基于特定区域...

    utf-8 ansi 字符互转 工具

    例如“utf-8 ansi 字符互转 工具”就是这样一个软件,它能方便地帮助用户将文件或文本内容在UTF-8和ANSI编码之间进行转换。使用这类工具,用户通常只需选择输入文件、指定输出格式,然后点击转换按钮即可完成操作。 ...

    bat脚本将csv格式UTF-8批量转ANSI

    标题中的"bat脚本将csv格式UTF-8批量转ANSI"指的是利用批处理脚本来自动化转换一批UTF-8编码的CSV文件为ANSI编码。批处理脚本是Windows操作系统中的一种简单程序,它由一系列命令组成,可以一次执行多个命令,节省了...

    批量修改文本文件的编码方式至UTF-8或ANSI,可用于批量修改CUE格式文件

    本话题将深入探讨批量转换编码格式的方法,以“批量修改文本文件的编码方式至UTF-8或ANSI”为例,主要针对CUE格式文件,同时也适用于其他常见文件类型。 首先,UTF-8是一种广泛使用的多字节字符编码,能够表示...

    Java避免UTF-8的csv文件打开中文出现乱码的方法

    Java避免UTF-8的csv文件打开中文出现乱码的方法 在Java中,避免UTF-8的csv文件打开中文出现乱码的方法是非常重要的。csv文件是 comma separated values 的缩写,常用于数据交换和导入导出操作。然而,在Java中读取...

    易语言ANSI+UTF-8解码

    易语言ANSI+UTF-8解码源码,ANSI+UTF-8解码,U2A,URL解码ALL,UrlUnescapeA,MultiByteToWideChar_utf8,WideCharToMultiByte,StrStrI

    ANSI-UTF-8-互转.rar

    可以进行转换的操作有:UTF8-&gt;ANSI或ANSI-&gt;UTF8. 可以方便网站设计人员在这两种编码之间进行转换. 软件为绿色软件,不写入任何注册表信息,不包含任何垃圾(下载请对比本站的MD5检验码). 操作注意: 文件类型须...

    Encode-Decode-ANSI-UTF-8.rar

    总的来说,"Encode-Decode-ANSI-UTF-8.rar"提供的工具对于处理跨平台或者跨语言环境下的文本数据非常有用,尤其是在处理中文字符时。理解和掌握各种编码格式,以及如何在它们之间进行转换,对于开发者和日常用户来说...

    将csv文件ANSI格式转UTF-8

    在标签"软件/插件"中,我们可以推断这是一个应用软件或可能是一个与文本编辑器、文件管理器集成的插件,它的功能就是帮助用户方便地将CSV文件的ANSI编码转换为UTF-8编码。这类工具的存在是为了简化用户的工作流程,...

    批量文本文件字符代码转换功能(从ansi 到 Utf-8)

    相信你和我一样, 遇到过要把整个网站代码文件,及其它文本文件从ANSI 转换为 ...文件批量转换器(从ANSI 到 UTF-8) 对目录及其子目录下所有文本文件里的字符的存储代码转换. 欢迎下载,修改. 这本质是一些php函数.

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    - 将字符串从ANSI转换为Unicode或UTF-8 - 将Unicode(Little Endian或Big Endian)转换为其他编码 - 实现UTF-8与UTF-8+BOM之间的转换 - 提供批量转换文件或目录中所有文件的编码的功能 使用这样的类,你可以方便地...

    ansi转换为utf8的工具

    这时,通过"ansi2utf8"工具将这些文件转换为UTF-8,就可以避免乱码并确保文本内容的完整性和可读性。 总的来说,了解和掌握各种字符编码以及相应的转换工具,对于进行跨平台的数据交换、文本处理和编程工作至关重要...

    Delphi和JAVA进行TCPIP通信(用UTF-8编码)例子

    令我无语的是:JAVA系统那边反映说,Delphi发的数据他们收到是乱码,而我这边(Delphi7,ANSI)收到的数据将utf-8转码成ansi也是乱码。 因为不太熟悉java语言,还曾经怀疑是不是Delphi的utf-8编码和java语言的不...

    文件夹下ansi全部转换为utf-8

    文件夹下ansi全部转换为utf-8

    TXT实现批量将ANSI转成为UTF-8编码的小软件

    本文主要探讨如何使用TXT实现批量将ANSI编码转换为UTF-8编码,这对于我们处理多语言文档或者确保文件在不同环境下正常显示至关重要。 首先,我们要理解ANSI和UTF-8这两种编码的区别。ANSI编码(也称为Windows默认...

    ANSII文件转UTF-8

    本篇文章将深入探讨如何将ANSII格式的文件转换为UTF-8格式,以及这个过程的重要性。 首先,我们需要理解ANSII和UTF-8之间的区别。ANSII(美国国家标准协会标准)实际上通常指的是Windows系统中的“Windows-1252”...

    ANSI文件转UTF-8

    ### ANSI 文件转换为 UTF-8 的过程解析 #### 一、背景介绍 在软件开发过程中,经常需要处理不同编码格式的文件。常见的字符编码有ANSI(也称为Windows Code Page)、UTF-8等。其中ANSI是根据操作系统所在区域设置而...

Global site tag (gtag.js) - Google Analytics