2018/05/03 NIO基础使用

前几天写了一个简单的用NIO来生成文件的后台程序。代码如下。

用的FileOutputStream获取的FileCHannel,暂时还不知和RandomAccessFile的区别,暂时了解到后者可以同时进行读写。

暂时是完全重新写入文件,并不是在文件末尾追加信息。

private static final String LINE_SPARATOF = System.getProperty("line.separator");

public static void nioWriteFile(List<String> datas, String fileName) throws IOException {

// 截取获取文件全路径

                String filePath = StrUtil.getFilePath(fileName);

File fileDir = new File(filePath);
if (!fileDir.exists()) {
fileDir.mkdir();
}
FileOutputStream fos = null;
FileChannel outChannel = null;
try {
fos = new FileOutputStream(fileName);
outChannel = fos.getChannel();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < datas.size(); i++) {
sb.append(datas.get(i));
if (i < datas.size() - 1) {
sb.append(LINE_SPARATOF);
}
}
ByteBuffer bb = ByteBuffer.wrap(sb.toString().getBytes("GBK"));
// outChannel.position(outChannel.size());
outChannel.write(bb);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (outChannel != null) {
outChannel.close();
}
if (fos != null) {
fos.flush();
fos.close();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值