从方法名上可以得到,这是系统对象里的行分隔符,那么具体表示什么含义呢?
一、System类的概念
在API中system类介绍的比较简单,我们给出定义,system中代表程序所在系统,提供了对应的一些系统属性信息和系统操作。
注意,system类不能手动创建对象,因为构造方法被私有化(即被private关键字修饰),组织外界创建对象(即不能用new关键字生成一个对象)。System类中的都是静态方法(static关键字修饰),类名访问即可。在JDK中,有许多这样的类。在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。
二、System.lineSeparator()的源码
从源码中可以看出,System.lineSeparator()确实返回的是行分隔符,它会根据当前的电脑系统返回对应的行分隔符
/** * Returns the system-dependent line separator string. It always * returns the same value - the initial value of the {@linkplain * #getProperty(String) system property} {@code line.separator}. * * <p>On UNIX systems, it returns {@code "\n"}; on Microsoft * Windows systems it returns {@code "\r\n"}. * * @return the system-dependent line separator string * @since 1.7 */ public static String lineSeparator() { return lineSeparator; } private static String lineSeparator;
三、System.lineSeparator()具体含义
从JDK源码中可以得出:从JDK1.7(含)之后才开始有的这个方法,
在UNIX系统下,System.lineSeparator()方法返回 "\n"
在Windows系统下,System.lineSeparator()方法返回 "\r\n"
其实使用这个就实现了程序的跨平台运行,System.lineSeparator()方法会根据当前的系统返回对应的行分隔符。从而避免了你编写的程序在windows系统上可以运行,linux/unix系统上无法运行的情况。
完结!