WritableResource接口解读
WritableResource接口解读
源码
WritableResource继承于Resource,提供了资源的写能力。
public interface WritableResource extends Resource {
//是否可写
default boolean isWritable() {
return true;
}
//返回OutputStream
OutputStream getOutputStream() throws IOException;
//返回WritableByteChannel(Java nio中的Channel)
default WritableByteChannel writableChannel() throws IOException {
return Channels.newChannel(getOutputStream());
}
}
例子
FileSystemResource实现了WritableResource所有具备了写的能力,可以尝试一下使用该接口获取输出流。
@Test
public void testFileSystemResourc2() throws IOException {
String path = "F://test.txt";
WritableResource fileSystemResource = new FileSystemResource(path);
System.out.println("长度:"+fileSystemResource.contentLength());
//FileSystemResource实现了WritableResource接口
OutputStream outputStream = fileSystemResource.getOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write("123456789");
outputStreamWriter.flush();
outputStreamWriter.close();
System.out.println("长度:"+fileSystemResource.contentLength());
WritableByteChannel writableByteChannel = fileSystemResource.writableChannel();
ByteBuffer allocate = ByteBuffer.allocate(1024 * 10);
allocate.put("abcdefghijk".getBytes());
allocate.flip();
writableByteChannel.write(allocate);
writableByteChannel.close();
System.out.println("长度:"+fileSystemResource.contentLength());
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)