鸿蒙OS开发文档 第64页

鸿蒙OS StringBuffer

StringBuffer java.lang.Object |—java.lang.StringBuffer public final class StringBuffer extends Object implements Appendable, CharSequence, Serializable 一个线程安全的、可变的字符序列。字符串缓冲区类似于字符串,但可以修改。在任何时候它都包含一些特定的字符序列,但是序列的长度和内容可以通过某些方法调用来改变。 字符串缓冲区可以安全地被多个线程使用。这些方法在必要时同步,以便任何特定实例上的所有操作都表现得好像它们以某种串行顺序发生,该顺序与所涉及的每个单独线程进行的方法调用的顺序一致。 StringBuffer 上的主要操作是 append 和 insert 方法,它们被重载以便接受任何类型的数据。每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串缓冲区。 append 方法总是将这些字符添加到缓冲区的末尾; insert 方法在指定点添加字符。 例如,如果 z 引用当前内容为“start”的字符串缓冲区对象,则方法调用 z.append(“le”) 将导致字符串缓冲区包含“startle”,而 z.insert(4, ” le”) 将更改字符串缓冲区以包含“starlet”。 一般来说,如果 sb 引用一个 StringBuffer 的实例,那么 sb.append(x) 与 sb.insert(sb.length(), x) 具有相同的效果。 每当发生涉及源序列的操作(例如从源序列追加或插入)时,此类仅在执行操作的字符串缓冲区上同步,而不在源上同步。请注意,虽然 StringBuffer 旨在安全地从多个线程同时使用,但如果向构造函数或追加或插入操作传递了跨线程共享的源序列,则调用代码必须确保该操作具有一致且不变的视图操作期间的源序列。这可以通过在操作调用期间持有锁的调用者来满足,通过使用不可变的源序列,或者不跨线程共享源序列。 每个字符串缓冲区都有一个容量。只要字符串缓冲区包含的字符序列的长度不超过容量,就不需要分配新的内部缓冲区数组。如果内部缓冲区溢出,它会自动变大。 除非另有说明,否则将 null 参数传递给此类中的构造函数或方法将导致抛出 NullPointerException。 从 JDK 5 开始,该类已经补充了一个为单线程使用而设计的等效类 StringBuilder。通常应优先使用 StringBuilder 类,因为它支持所有相同的操作,但速度更快,因为它不执行同步。 构造函数总结 构造函数 描述 StringBuffer() 构造一个字符串缓冲区,其中没有字符,初始容量为 16 个字符。 StringBuffer(int capacity) 构造一个没有字符且具有指定初始容量的字符串缓冲区。 StringBuffer(CharSequence seq) 构造一个字符串缓冲区,该缓冲区包含与指定 CharSequence 相同的字符。 StringBuffer(String str) 构造一个字符串缓冲区,初始化为指定字符串的内容。 方法总结 修饰符和类型 方法 描述 StringBuffer append(boolean b) StringBuffer append(char c) 将指定的字符附加到此 Appendable。 StringBuffer append(char[] str) StringBuffer append(char[] str, int offset, int len) StringBuffer append(double d) StringBuffer append(float f) StringBuffer append(int i) StringBuffer append(long lng) StringBuffer append(CharSequence s) 将指定的 CharSequence 附加到此序列。 StringBuffer append(CharSequence s, int start, int end) 将指定字符序列的子序列附加到此 Appendable。 StringBuffer append(Object obj) StringBuffer append(String str) StringBuffer append(StringBuffer sb) 将指定的 StringBuffer 附加到此序列。 StringBuffer appendCodePoint(int codePoint) int capacity() char charAt(int index) 返回指定索引处的 char 值。 int codePointAt(int index) int codePointBefore(int index) int codePointCount(int beginIndex, int endIndex) StringBuffer delete(int start, int end) StringBuffer...

鸿蒙OS String

String java.lang.Object |—java.lang.String public final class String extends Object implements Serializable, Comparable<String>, CharSequence String 类表示字符串。 Java 程序中的所有字符串文字,例如“abc”,都是作为此类的实例实现的。 字符串是常量; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为 String 对象是不可变的,所以它们可以被共享。 例如: String str = "abc"; 相当于: char data[] = {'a', 'b', 'c'}; String str = new String(data); 以下是有关如何使用字符串的更多示例: System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2); String 类包括检查序列的单个字符、比较字符串、搜索字符串、提取子字符串以及创建字符串副本的方法,其中所有字符都转换为大写或小写。大小写映射基于 Character 类指定的 Unicode 标准版本。 Java 语言为字符串连接运算符 ( + ) 以及将其他对象转换为字符串提供了特殊支持。字符串连接是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,由 Object 定义并由 Java 中的所有类继承。有关字符串连接和转换的更多信息,请参阅 Gosling、Joy 和 Steele,Java 语言规范。 除非另有说明,否则将 null 参数传递给此类中的构造函数或方法将导致抛出 NullPointerException。 String 表示 UTF-16 格式的字符串,其中补充字符由代理对表示(有关更多信息,请参见 Character 类中的 Unicode Character Representations 部分)。索引值指的是字符代码单元,因此补充字符使用字符串中的两个位置。 除了处理 Unicode 代码单元(即 char 值)的方法之外,String 类还提供了处理 Unicode 代码点(即字符)的方法。 字段摘要 修饰符和类型 字段 描述 static ComparatorString CASE_INSENSITIVE_ORDER 一个比较器,它按照 compareToIgnoreCase 对 String 对象进行排序。 构造函数摘要 构造函数 描述 String() 初始化一个新创建的 String 对象,使其表示一个空字符序列。 String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造一个新的字符串。...

鸿蒙OS StrictMath

StrictMath java.lang.Object |—java.lang.StrictMath public final class StrictMath extends Object StrictMath 类包含执行基本数值运算的方法,例如初等指数、对数、平方根和三角函数。 为帮助确保 Java 程序的可移植性,此包中某些数值函数的定义要求它们产生与某些已发布算法相同的结果。这些算法可从著名的网络库 netlib 中以包“Freely Distributable Math Library”fdlibm 的形式获得。这些算法是用 C 编程语言编写的,因此可以理解为按照 Java 浮点运算规则执行所有浮点运算。 Java 数学库是针对 fdlibm 5.3 版定义的。如果 fdlibm 为函数(例如 acos)提供了多个定义,请使用“IEEE 754 核心函数”版本(驻留在名称以字母 e 开头的文件中)。需要 fdlibm 语义的方法有 sin、cos、tan、asin、acos、atan、exp、log、log10、cbrt、atan2、pow、sinh、cosh、tanh、hypot、expm1 和 log1p。 该平台使用带有 int 和 long 原始类型的带符号二进制补码整数算术。开发人员应选择原始类型以确保算术运算始终产生正确的结果,这在某些情况下意味着运算不会溢出计算值的范围。最佳实践是选择原始类型和算法以避免溢出。在大小为 int 或 long 且需要检测溢出错误的情况下,方法 addExact、subtractExact、multiplyExact 和 toIntExact 在结果溢出时抛出 ArithmeticException。对于其他算术运算,例如除法、绝对值、递增、递减和求反,溢出仅发生在特定的最小值或最大值时,应根据需要检查最小值或最大值。 字段摘要 修饰符和类型 字段 描述 static double E 比任何其他值都更接近自然对数的底 e 的双精度值。 static double PI 比任何其他值都更接近 pi 的 double 值,pi 是圆的周长与其直径的比率。 方法总结 修饰符和类型 方法 描述 static double abs(double a) 返回双精度值的绝对值。 static float abs(float a) 返回浮点值的绝对值。 static int abs(int a) 返回 int 值的绝对值。 static long abs(long a) 返回 long 值的绝对值。 static double acos(double a) 返回一个值的反余弦值; 返回的角度在 0.0 到 pi 的范围内。 static int addExact(int x, int y) 返回其参数的总和,如果结果溢出 int,则抛出异常。 static long addExact(long x, long y) 返回其参数的总和,如果结果溢出 long 则抛出异常。 static double asin(double a) 返回一个值的反正弦; 返回的角度在 -pi/2 到 pi/2 的范围内。 static double atan(double a) 返回值的反正切; 返回的角度在 -pi/2 到 pi/2 的范围内。 static double atan2 x) 从直角坐标 (x, y) 到极坐标 (r, theta) 的转换中返回角度 theta。 static double cbrt(double a) 返回双精度值的立方根。 static double ceil(double a) 返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。 static double copySign(double magnitude, double sign) 返回带有第二个浮点参数符号的第一个浮点参数。 static float copySign(float magnitude, float sign) 返回带有第二个浮点参数符号的第一个浮点参数。 static double cos(double a) 返回角度的三角余弦值。 static double cosh(double x) 返回 double 值的双曲余弦值。 static double exp(double a) 返回欧拉数 e 的双精度次方。...

鸿蒙OS StackTraceElement

StackTraceElement java.lang.Object |—java.lang.StackTraceElement public final class StackTraceElement extends Object implements Serializable 堆栈跟踪中的一个元素,由 Throwable#getStackTrace() 返回。 每个元素代表一个堆栈帧。 除了栈顶的栈帧外,所有栈帧都代表一个方法调用。 堆栈顶部的帧表示生成堆栈跟踪的执行点。 通常,这是创建对应于堆栈跟踪的 throwable 的点。 构造函数摘要 构造函数 描述 StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber) 创建表示指定执行点的堆栈跟踪元素。 方法总结 修饰符和类型 方法 描述 boolean equals(Object obj) 如果指定对象是另一个 StackTraceElement 实例,表示与此实例相同的执行点,则返回 true。 String getClassName() 返回包含此堆栈跟踪元素表示的执行点的类的完全限定名称。 String getFileName() 返回包含此堆栈跟踪元素表示的执行点的源文件的名称。 int getLineNumber() 返回包含此堆栈跟踪元素表示的执行点的源行的行号。 String getMethodName() 返回包含此堆栈跟踪元素表示的执行点的方法的名称。 int hashCode() 返回此堆栈跟踪元素的哈希码值。 boolean isNativeMethod() 如果包含此堆栈跟踪元素表示的执行点的方法是本机方法,则返回 true。 String toString() 返回此堆栈跟踪元素的字符串表示形式。 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, wait, wait, wait 构造函数详细信息 StackTraceElement public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber) 创建表示指定执行点的堆栈跟踪元素。 参数: 参数名称 参数描述 declaringClass 包含堆栈跟踪元素表示的执行点的类的完全限定名称 methodName 包含由堆栈跟踪元素表示的执行点的方法的名称 fileName 包含堆栈跟踪元素表示的执行点的文件的名称,如果此信息不可用,则返回 null lineNumber 包含此堆栈跟踪元素表示的执行点的源行的行号,如果此信息不可用,则为负数。 值为 -2 表示包含执行点的方法是本机方法 Throws: Throw名称 Throw描述 NullPointerException 如果 declaringClass 或 methodName 为 null 方法详情 getFileName public String getFileName() 返回包含此堆栈跟踪元素表示的执行点的源文件的名称。 通常,这对应于相关类文件的 SourceFile 属性(根据 Java 虚拟机规范,第 4.7.7 节)。 在某些系统中,名称可能指代文件以外的某些源代码单元,例如源存储库中的条目。 返回: 包含此堆栈跟踪元素表示的执行点的文件的名称,如果此信息不可用,则为 null。 getLineNumber public int getLineNumber() 返回包含此堆栈跟踪元素表示的执行点的源行的行号。 通常,这是从相关类文件的 LineNumberTable 属性派生的(根据 Java 虚拟机规范,第 4.7.8 节)。 返回: 包含此堆栈跟踪元素表示的执行点的源行的行号,如果此信息不可用,则为负数。 getClassName public String getClassName()...

鸿蒙OS Short

Short java.lang.Object |—java.lang.Number |—|—java.lang.Short public final class Short extends Number implements Comparable<Short> Short 类将原始类型 short 的值包装在对象中。 Short 类型的对象包含一个 short 类型的字段。 此外,该类提供了几种将short 转换为String 和String 转换为short 的方法,以及在处理short 时有用的其他常量和方法。 字段摘要 修饰符和类型 字段 描述 static int BYTES 用于以二进制补码形式表示短值的字节数。 static short MAX_VALUE 一个保持空头可以拥有的最大值的常数,215-1。 static short MIN_VALUE 一个保持空头可以拥有的最小值的常数,-215。 static int SIZE 用于以二进制补码形式表示短值的位数。 static ClassShort TYPE 表示原始类型 short 的 Class 实例。 构造函数摘要 构造函数 描述 Short(short value) 构造一个新分配的 Short 对象,该对象表示指定的 short 值。 Short(String s) 构造一个新分配的 Short 对象,该对象表示由 String 参数指示的 short 值。 方法总结 修饰符和类型 方法 描述 byte byteValue() 在缩小原语转换后,将此 Short 的值作为字节返回。 static int compare(short x, short y) 比较两个短数值。 int compareTo(Short anotherShort) 以数字方式比较两个 Short 对象。 static Short decode(String nm) 将 String 解码为 Short。 double doubleValue() 在扩展原始转换之后,将此 Short 的值作为双精度值返回。 boolean equals(Object obj) 将此对象与指定对象进行比较。 float floatValue() 在扩大原始转换后,将此 Short 的值作为浮点数返回。 int hashCode() 返回此 Short 的哈希码; 等于调用 intValue() 的结果。 static int hashCode(short value) 返回短值的哈希码; 与 Short.hashCode() 兼容。 int intValue() 在扩展原始转换后,将此 Short 的值作为 int 返回。 long longValue() 在扩展原始转换后将此 Short 的值作为 long 返回。 static short parseShort(String s) 将字符串参数解析为有符号十进制短。 static short parseShort(String s, int radix) 将字符串参数解析为第二个参数指定的基数中的有符号短整数。 static short reverseBytes(short i) 返回通过反转指定短值的二进制补码表示中的字节顺序获得的值。 short shortValue() 将此 Short 的值作为 short 返回。 String toString() 返回表示此 Short 值的 String 对象。 static String toString(short s) 返回一个表示指定短的新字符串对象。 static int toUnsignedInt(short x) 通过无符号转换将参数转换为 int。 static long toUnsignedLong(short x) 通过无符号转换将参数转换为 long。 static Short valueOf(short s) 返回一个表示指定短值的 Short 实例。 static Short valueOf(String s) 返回一个 Short 对象,该对象保存由指定 String 给出的值。 static Short...

鸿蒙OS SecurityManager

SecurityManager java.lang.Object |—java.lang.SecurityManager public class SecurityManager extends Object 安全管理器是一个允许应用程序实现安全策略的类。 它允许应用程序在执行可能不安全或敏感的操作之前确定该操作是什么以及是否在允许执行该操作的安全上下文中尝试该操作。 应用程序可以允许或禁止该操作。 SecurityManager 类包含许多名称以单词 check 开头的方法。 在这些方法执行某些潜在敏感操作之前,这些方法由 Java 库中的各种方法调用。 这种检查方法的调用通常如下所示: SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkXXX(argument, . . . ); } 因此,安全管理器有机会通过抛出异常来阻止操作完成。 如果操作被允许,安全管理器例程会简单地返回,但如果操作不被允许,则抛出 SecurityException。 此约定的唯一例外是 checkTopLevelWindow,它返回一个布尔值。 当前的安全管理器由 System.class 中的 setSecurityManager 方法设置。 当前的安全管理器通过 getSecurityManager 方法获取。 特殊方法 SecurityManager#checkPermission(java.security.Permission) 确定是否应授予或拒绝由指定权限指示的访问请求。 默认实现调用 AccessController.checkPermission(perm); 如果请求的访问被允许,checkPermission 会安静地返回。如果被拒绝,则会引发 SecurityException。 从 Java 2 SDK v1.2 开始,SecurityManager 中其他每个检查方法的默认实现是调用 SecurityManager 的 checkPermission 方法来确定调用线程是否有权执行请求的操作。 请注意,只有一个权限参数的 checkPermission 方法总是在当前执行线程的上下文中执行安全检查。有时,应该在给定上下文中进行的安全检查实际上需要在不同的上下文中进行(例如,从工作线程中)。针对这种情况提供了包含上下文参数的 SecurityManager#getSecurityContext 方法和 SecurityManager#checkPermission(java.security.Permission, java.lang.Object) 方法。 getSecurityContext 方法返回当前调用上下文的“快照”。 (默认实现返回一个 AccessControlContext 对象。)示例调用如下: Object context = null; SecurityManager sm = System.getSecurityManager(); if (sm != null) context = sm.getSecurityContext(); checkPermission 方法除了权限外还接受上下文对象,根据该上下文而不是当前执行线程的上下文做出访问决策。 因此,不同上下文中的代码可以调用该方法,传递权限和先前保存的上下文对象。 使用如上例中获得的 SecurityManager sm 的示例调用如下: if (sm != null) sm.checkPermission(permission, context); 权限分为以下类别:文件、套接字、网络、安全性、运行时、属性、AWT、反映和可序列化。管理这些不同权限类别的类是 java.io.FilePermission、java.net.SocketPermission、java.net.NetPermission、java.security.SecurityPermission、java.lang.RuntimePermission、java.util.PropertyPermission、java.awt.AWTPermission、 java.lang.reflect.ReflectPermission 和 java.io.SerializablePermission。 除了前两个(FilePermission 和 SocketPermission)之外的所有都是 java.security.BasicPermission 的子类,它本身是顶级权限类 java.security.Permission 的抽象子类。 BasicPermission...

鸿蒙OS RuntimePermission

RuntimePermission java.lang.Object |—java.security.Permission |—|—java.security.BasicPermission |—|—|—java.lang.RuntimePermission public final class RuntimePermission extends BasicPermission 此类用于运行时权限。 RuntimePermission 包含一个名称(也称为“目标名称”)但没有操作列表; 您要么拥有命名权限,要么没有。 目标名称是运行时权限的名称(见下文)。 命名约定遵循分层属性命名约定。 此外,星号可能出现在名称的末尾,跟在“.”之后,或者单独出现,表示通配符匹配。 例如:“加载库”。 和 “” 表示通配符匹配,而 “loadLibrary” 和 “ab” 不表示。 下表列出了所有可能的 RuntimePermission 目标名称,并为每个目标名称提供了权限允许的描述以及授予代码权限的风险的讨论。 构造函数摘要 构造函数 描述 RuntimePermission(String name) 创建具有指定名称的新 RuntimePermission。 RuntimePermission(String name, String actions) 创建具有指定名称的新 RuntimePermission 对象。 方法总结 从类 java.security.BasicPermission 继承的方法 getActions, implies 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从类 java.security.Permission 继承的方法 checkGuard, getName, newPermissionCollection 构造函数详细信息 RuntimePermission public RuntimePermission(String name) 创建具有指定名称的新 RuntimePermission。 该名称是 RuntimePermission 的符号名称,例如“exit”、“setFactory”等。星号可以出现在名称的末尾,跟在“.”之后,或者单独出现,表示通配符匹配。 参数: 参数名称 参数描述 name RuntimePermission 的名称。 Throws: Throw名称 Throw描述 NullPointerException 如果名称为null IllegalArgumentException 如果名称为empty RuntimePermission public RuntimePermission(String name, String actions) 创建具有指定名称的新 RuntimePermission 对象。 该名称是 RuntimePermission 的符号名称,且操作字符串当前未使用且应为空。 参数: 参数名称 参数描述 name RuntimePermission 的名称。 actions 应该为 null。 Throws: Throw名称 Throw描述 NullPointerException 如果名称为null IllegalArgumentException 如果名称为empty

鸿蒙OS Runtime

Runtime java.lang.Object |—java.lang.Runtime public class Runtime extends Object 每个 Java 应用程序都有一个 Runtime 类的实例,它允许应用程序与运行应用程序的环境进行交互。 当前运行时可以从 getRuntime 方法中获取。 应用程序无法创建自己的此类实例。 方法总结 修饰符和类型 方法 描述 void addShutdownHook(Thread hook) 注册一个新的虚拟机关闭挂钩。 int availableProcessors() 返回 Java 虚拟机可用的处理器数量。 Process exec(String command) 在单独的进程中执行指定的字符串命令。 Process exec(String[] cmdarray) 在单独的进程中执行指定的命令和参数。 Process exec(String[] cmdarray, String[] envp) 在具有指定环境的单独进程中执行指定的命令和参数。 Process exec(String[] cmdarray, String[] envp, File dir) 在具有指定环境和工作目录的单独进程中执行指定的命令和参数。 Process exec(String command, String[] envp) 在具有指定环境的单独进程中执行指定的字符串命令。 Process exec(String command, String[] envp, File dir) 在具有指定环境和工作目录的单独进程中执行指定的字符串命令。 void exit(int status) 通过启动其关闭序列来终止当前正在运行的 Java 虚拟机。 long freeMemory() 返回 Java 虚拟机中的可用内存量。 void gc() 运行垃圾收集器。 InputStream getLocalizedInputStream(InputStream in) 已弃用。 从 JDK 1.1 开始,将本地编码中的字节流转换为 Unicode 中的字符流的首选方法是通过 InputStreamReader 和 BufferedReader 类。 OutputStream getLocalizedOutputStream(OutputStream out) 已弃用。 从 JDK 1.1 开始,将 Unicode 字符流转换为本地编码的字节流的首选方法是通过 OutputStreamWriter、BufferedWriter 和 PrintWriter 类。 static Runtime getRuntime() 返回与当前 Java 应用程序关联的运行时对象。 void halt(int status) 强制终止当前运行的 Java 虚拟机。 void load(String filename) 加载由文件名参数指定的本机库。 void loadLibrary(String libname) 加载由 libname 参数指定的本机库。 long maxMemory() 返回 Java 虚拟机将尝试使用的最大内存量。 boolean removeShutdownHook(Thread hook) 取消注册以前注册的虚拟机关闭挂钩。 void runFinalization() 运行任何等待终结的对象的终结方法。 static void runFinalizersOnExit(boolean value) 已弃用。 这种方法本质上是不安全的。 这可能会导致在其他线程同时操作这些对象时对活动对象调用终结器,从而导致行为不稳定或死锁。 long totalMemory() 返回 Java 虚拟机中的内存总量。 void traceInstructions(boolean on) 启用/禁用指令跟踪。 void traceMethodCalls(boolean on) 启用/禁用方法调用的跟踪。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 方法详情 getRuntime public static Runtime getRuntime() 返回与当前 Java 应用程序关联的运行时对象。 Runtime 类的大部分方法都是实例方法,必须针对当前运行时对象调用。 返回: 与当前 Java 应用程序关联的运行时对象。 exit public void exit(int status) 通过启动其关闭序列来终止当前正在运行的 Java 虚拟机。此方法永远不会正常返回。该参数用作状态码;按照惯例,非零状态码表示异常终止。...

鸿蒙OS ProcessBuilder.Redirect

ProcessBuilder.Redirect java.lang.Object |—java.lang.ProcessBuilder.Redirect public abstract static class ProcessBuilder.Redirect extends Object 表示子流程输入的来源或子流程输出的目的地。 每个重定向实例都是以下之一: 特殊值 Redirect.PIPE 特殊值 Redirect.INHERIT 从文件中读取的重定向,由 Redirect#from 调用创建 写入文件的重定向,由 Redirect#to 调用创建 附加到文件的重定向,由调用 Redirect#appendTo 创建 上述每个类别都有一个关联的唯一类型。 嵌套类摘要 修饰符和类型 类 描述 static class ProcessBuilder.Redirect.Type 重定向的类型。 字段摘要 修饰符和类型 字段 描述 static ProcessBuilder.Redirect INHERIT 表示子进程 I/O 源或目标将与当前进程的相同。 static ProcessBuilder.Redirect PIPE 指示子进程 I/O 将通过管道连接到当前 Java 进程。 方法总结 修饰符和类型 方法 描述 static ProcessBuilder.Redirect appendTo(File file) 返回重定向以附加到指定文件。 boolean equals(Object obj) 比较指定对象与此重定向是否相等。 File file() 返回与此重定向关联的文件源或目标,如果没有此类文件,则返回 null。 static ProcessBuilder.Redirect from(File file) 返回从指定文件读取的重定向。 int hashCode() 返回此重定向的哈希码值。 static ProcessBuilder.Redirect to(File file) 返回重定向以写入指定文件。 abstract ProcessBuilder.Redirect.Type type() 返回此重定向的类型。 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait 字段详细信息 INHERIT public static final ProcessBuilder.Redirect INHERIT 表示子进程 I/O 源或目标将与当前进程的相同。 这是大多数操作系统命令解释器(shell)的正常行为。 永远都为true Redirect.INHERIT.file() == null && Redirect.INHERIT.type() == Redirect.Type.INHERIT PIPE public static final ProcessBuilder.Redirect PIPE 指示子进程 I/O 将通过管道连接到当前 Java 进程。 这是子进程标准 I/O 的默认处理。 永远都为true Redirect.PIPE.file() == null && Redirect.PIPE.type() == Redirect.Type.PIPE 方法详情 type public abstract ProcessBuilder.Redirect.Type type() 返回此重定向的类型。...

鸿蒙OS ProcessBuilder

ProcessBuilder java.lang.Object |—java.lang.ProcessBuilder public final class ProcessBuilder extends Object 此类用于创建操作系统进程。 每个 ProcessBuilder 实例管理一个流程属性的集合。 start() 方法使用这些属性创建一个新的 Process 实例。 可以从同一个实例重复调用 start() 方法来创建具有相同或相关属性的新子流程。 每个流程构建器都管理这些流程属性: 一个命令,一个字符串列表,表示要调用的外部程序文件及其参数(如果有)。 哪些字符串列表代表有效的操作系统命令取决于系统。 例如,每个概念参数通常是该列表中的一个元素,但在某些操作系统中,程序需要自己标记命令行字符串——在这样的系统上,Java 实现可能需要命令恰好包含两个元素。 环境,它是从变量到值的系统相关映射。 初始值是当前进程环境的副本。 一个工作目录。 默认值为当前进程的当前工作目录,通常是系统属性user.dir命名的目录。 标准输入源 默认情况下,子进程从管道读取输入。 Java 代码可以通过 Process#getOutputStream() 返回的输出流访问此管道。 但是,标准输入可以使用redirectInput 重定向到另一个源。 在这种情况下,Process#getOutputStream() 将返回一个空输出流,其中: OutputStream#write(int) 方法总是抛出 IOException OutputStream#close() 方法什么也不做 标准输出和标准错误的目的地。 默认情况下,子进程将标准输出和标准错误写入管道。 Java 代码可以通过 Process#getInputStream() 和 Process#getErrorStream() 返回的输入流访问这些管道。 但是,标准输出和标准错误可以使用redirectOutput 和redirectError 重定向到其他目的地。 在这种情况下, Process#getInputStream() 和/或 Process#getErrorStream() 将返回一个空输入流,其中: InputStream#read() 方法总是返回 -1 InputStream#available() 方法总是返回 0 InputStream#close() 方法什么也不做 一个 redirectErrorStream 属性。 最初,此属性为 false,这意味着子进程的标准输出和错误输出被发送到两个单独的流,可以使用 Process#getInputStream() 和 Process#getErrorStream() 方法访问它们。 如果该值设置为 true,则: 标准错误与标准输出合并并始终发送到相同的目的地(这使得将错误消息与相应的输出关联起来更容易) 标准错误和标准输出的共同目的地可以使用redirectOutput重定向 在创建子进程时,任何由 redirectError 方法设置的重定向都会被忽略 从 Process#getErrorStream() 返回的流将始终为空输入流 修改进程构建器的属性将影响随后由该对象的 start() 方法启动的进程,但不会影响先前启动的进程或 Java 进程本身。 大多数错误检查由 start() 方法执行。 可以修改对象的状态以使 start() 失败。 例如,将 command 属性设置为空列表不会引发异常,除非调用 start()。 请注意,此类不同步。 如果多个线程同时访问一个 ProcessBuilder 实例,并且至少有一个线程在结构上修改了其中一个属性,则必须在外部进行同步。 启动一个使用默认工作目录和环境的新进程很容易: Process p = new ProcessBuilder("myCommand", "myArg").start(); 下面是一个示例,它使用修改后的工作目录和环境启动进程,并将标准输出和错误重定向到附加到日志文件中: ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1",...