Java判断文件的系统格式编码格式

使用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";}

亲测可用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/53831.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

caj文件怎么转换成pdf?了解一下这种方法

caj文件怎么转换成pdf?如果你曾经遇到过需要将CAJ文件转换成PDF格式的情况,那么你一定知道这是一件麻烦的事情。幸运的是,现在有许多软件和工具可以帮助你完成这项任务。下面就给大家介绍一款使用工具。 【迅捷PDF转换器】是一款功能强大的工…

外包业务成功的秘诀:自我修养的艺术

了解外包业务 外包,亦称外包服务,是一种经济活动形式。它是指企业将非核心业务交由专门的外部供应商完成,从而集中精力发展自身的核心业务。 外包的利弊 外包业务的利处在于,企业可以更好地专注于核心业务,缩减内部成…

【C#学习笔记】数组和索引器

文章目录 数组单维数组多维数组交错数组 索引器类上的索引器方法1方法2 接口中的索引器 数组 数组具有以下属性: 数组可以是一维、多维或交错的。创建数组实例时,将建立纬度数量和每个纬度的长度。 这些值在实例的生存期内无法更改。数值数组元素的默认…

中介者模式(Mediator)

中介者模式是一种行为设计模式,可以减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个封装了对象间交互行为的中介者对象来进行合作,从而使对象间耦合松散,并可独立地改变它们之间的交互。中介者…

【项目 线程4】3.12生产者消费者模型 3.13条件变量 3.14信号量 C++实现生产者消费者模型

3.12生产者消费者模型 生产者消费者模型中的对象: 1、生产者 2、消费者 3、容器 若容器已满,生产者阻塞在这,通知消费者去消费;若容器已空,则消费者阻塞,通知生产者去生产。生产者可以有多个,消…

深入学习 Redis - 谈谈你对 Redis 的 RDB、AOF、混合持久化的了解吧?

目录 一、Redis 是怎么存储数据的? 二、Redis 具体是按照什么样的策略来实现持久化的? 2.1、RDB(Redis Database) 2.1.1、触发机制 2.1.2、bgsave 命令处理流程 2.1.3、RDB 文件的处理 2.1.4、演示效果 1)手动执…

OSPF在MGRE上的实验

实验题目如下: 实验拓扑如下: 实验要求如下: 【1】R6为ISP只能配置ip地址,R1-5的环回为私有网段 【2】R1/4/5为全连的MGRE结构,R1/2/3为星型的拓扑结构,R1为中心站点 【3】所有私有网段可以互相通讯&…

【ARM Coresight 系列文章 2.3 - Coresight 寄存器】

文章目录 Coresight 寄存器介绍1.1 ITCTRL,integration mode control register1.2 CLAIM寄存器1.3 DEVAFF(Device Affinity Registers)1.4 LSR and LAR1.5 AUTHSTATUS(Authentication Status Register) Coresight 寄存器介绍 Coresight 对于每个 coresight 组件&am…

Android中级——RemoteView

RemoteView RemoteView的应用NotificationWidgetPendingIntent RemoteViews内部机制模拟RemoteViews RemoteView的应用 Notification 如下开启一个系统的通知栏,点击后跳转到某网页 public class MainActivity extends AppCompatActivity {private static final …

屏幕取色器Mac版_苹果屏幕取色工具_屏幕取色器工具

Sip for Mac 是Mac系统平台上的一款老牌的颜色拾取工具,是设计师和前端开发工作者必不可少的屏幕取色软件,你只需要用鼠标点一下即可轻松地对屏幕上的任何颜色进行采样和编码,并将颜色数据自动存到剪切板,方便随时粘贴出来。 Sip…

Aligning Large Language Models with Human: A Survey

本文也是LLM相关的综述文章,针对《Aligning Large Language Models with Human: A Survey》的翻译。 对齐人类与大语言模型:综述 摘要1 引言2 对齐数据收集2.1 来自人类的指令2.1.1 NLP基准2.1.2 人工构造指令 2.2 来自强大LLM的指令2.2.1 自指令2.2.2 …

# 关于Linux下的parted分区工具显示起始点为1049kB的问题解释

关于Linux下的parted分区工具显示起始点为1049kB的问题解释 文章目录 关于Linux下的parted分区工具显示起始点为1049kB的问题解释1 问题展示:2 原因3 修改为KiB方式显示4 最后 1 问题展示: kevinTM1701-b38cbc23:~$ sudo parted /dev/nvme1n1 GNU Part…