使用Java判断一个文件的系统格式(亲测可用),比如我们常见的Windows格式的文件,Unixg格式的文件,Mac格式的文件;常常有这样的场景:我们在Windows系统编写的脚步上传到Linux系统执行,执行过程中偶尔会出现各种各样奇怪的问题,然后还找不到原因!好了,大概率是脚本系统格式问题。
一、首先来看一下不使用代码程序的情况下怎么查看文件的格式
1.如果有notepad++,直接打开查看右下角,既可以查看当前的文件系统格式,也可以直接点击修改
2.用vim命令,命令行模式下:set ff 就可以查看当前的文件系统格式,:set ff=unix 就可以修改当前的文件格式
二、使用Java代码判断文件的系统格式
public static void main(String[] args) {String filePath = "F:\\temp\\1.sh";System.out.println(getFileSystemFormat(filePath));}public static String getFileSystemFormat(String filePath) {File file = new File(filePath);if (!file.exists()) {System.out.println("文件不在,路径:" + filePath);return "undefined";}try (FileInputStream in = new FileInputStream(filePath)) {StringBuffer systemFormat = new StringBuffer();int count;int i = 0;while ((count = in.read()) != -1) {//CR: ASCII: 13if (count == 13) {systemFormat.append(count);i++;}//LF: ASCII: 10if (count == 10) {systemFormat.append(count);i++;}if (i == 2) break;}if (systemFormat.toString().contains("1313")) {return "Mac";}if (systemFormat.toString().contains("1310")) {return "Windows";}if (systemFormat.toString().contains("1010")) {return "Unix";}} catch (Exception e) {e.printStackTrace();System.out.println("Exception e");}return "undefined";}
亲测可用!