使用常见 OpenOption 组合的最快方法
有没有一种简洁的习惯用语方式(也许使用Apache Commons)来指定OpenOption的常见组合,例如StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING
有没有一种简洁的习惯用语方式(也许使用Apache Commons)来指定OpenOption的常见组合,例如StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING
这些是您拥有的轻松可能性。
静态导入,以提高可读性:
import static java.nio.file.StandardOpenOption.CREATE_NEW;
import static java.nio.file.StandardOpenOption.WRITE;
OpenOption[] options = new OpenOption[] { WRITE, CREATE_NEW };
使用默认值:
//no Options anyway
Files.newBufferedReader(path, cs)
//default: CREATE, TRUNCATE_EXISTING, and WRITE not allowed: READ
Files.newBufferedWriter(path, cs, options)
//default: READ not allowed: WRITE
Files.newInputStream(path, options)
//default: CREATE, TRUNCATE_EXISTING, and WRITE not allowed: READ
Files.newOutputStream(path, options)
//default: READ do whatever you want
Files.newByteChannel(path, options)
最后,可以像这样指定选项集:
Files.newByteChannel(path, EnumSet.of(CREATE_NEW, WRITE));
我能提供的最好的建议是欺骗T的等价物......和 T[],其他堆栈溢出讨论之一说应该有效
是否可以将数组作为参数传递给 Java 中具有变量参数的方法?
所以。。。
OpenOption myOptions[] = {StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING};
OutputStream foo=OutputStream.newOutputStream(myPath,myOptions);
警告:未经测试。