DOS2UNIX and UNIX2DOSDOS2UNIX.EXE and UNIX2DOS.EXE are small Win32 (ie: Windows 9x and NT) console-mode file conversion utilities, compiled using Microsoft Visual C/C++ v4.0/v6.0. DOS2UNIX.EXE converts MS-DOS text files to Unix format, by stripping any CR or end-of-file (Ctrl-Z) characters from the data. UNIX2DOS.EXE inserts a CR character when it encounters an LF character, converting the data to MS-DOS format. http://www.bastet.com/uddu.zipdiff 类软件可以设置 忽略行结束符的区别。
http://www.bastet.com/uddu.zipdiff 类软件可以设置 忽略行结束符的区别。
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class TestHuanhang {
/*
*适用于windows平台将一个目录下的所有文件的unix换行符\x0a转换成\x0d\x0a
* 后存放在另外一个文件夹,请使用不同的文件夹名
* 参数1,源文件夹,参数2目标文件夹,参数3 过滤的正则表达式.参数4,新的换行符 .参数1,2,3都必须指定
参数4的格式为 crlf 或cr 或lf
* 目标文件夹和原文件夹都必须事先存在
* 一個命令的例子:java TestHuanhang . work .xml crlf
*/ public static void main(final String[] args) {
if (args.length < 3) {
System.out.println("请输入包含unix换行符所在文件的文件夹,和转换后所要放在的文件夹!和过滤的正则");
System.exit(0);
}
File srcFolder = new File(args[0]);
File destFolder = new File(args[1]);
if (!(srcFolder.isDirectory() && destFolder.isDirectory())) {
System.out.println("源文件夹和目标文件夹必须存在并且是目录!");
System.exit(0);
}
if (srcFolder.compareTo(destFolder) == 0) {
System.out.println("源文件夹和目标文件夹不能相同!");
System.exit(0);
} if (args.length == 4 && !(args[3].equalsIgnoreCase("crlf") || args[3].equalsIgnoreCase("lf") || args[3].equalsIgnoreCase("cr"))) {
System.out.println("请指定正确的行分割符!例如crlf或cr或lf");
System.exit(0); } String sline = "";
if (args.length == 3) {
sline = "\n";
} else if (args[3].equalsIgnoreCase("crlf")) {
sline = Character.toString((char) 13) + Character.toString((char) 10);
} else if (args[3].equalsIgnoreCase("cr")) {
sline = Character.toString((char) 13);
} else {
sline = Character.toString((char) 10);
}
File[] srcs = srcFolder.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) {
Matcher m = Pattern.compile(args[2]).matcher(name);
if (m.find()) {
return true;
} else {
return false;
}
}
}); for (File src : srcs) {
BufferedReader br = null;
PrintWriter pw = null;
try {
try {
br = new BufferedReader(new FileReader(src));
pw = new PrintWriter(new File(destFolder.getAbsolutePath(), src.getName()));
String line;
while (null != (line = br.readLine())) {
pw.print(line + sline);
}
} finally {
try {
if (br != null) {
br.close();
}
} finally { if (pw != null) {
pw.close();
}
}
}
} catch (Exception e) {
}
} }
}