я просто хочу, чтобы fileoutputstream был похож на filewriter в том же стиле
как это
//filewriter code
try {
File file = ('some file link');
fw=new FileWriter(file,true);
fw.write("2017-06-08");
fw.write("#");//separator
fw.write("ABCD");
fw.write("#");//separator
fw.write("\r\n");
fw.flush();
}
ответ в файле :: 2017-06-08#ABCD#
но я хочу блокировку файлов, поэтому используйте fos&channel.
try {
//date = string "2017-06-08", menu= string"ABCD"
fos = new FileOutputStream('file_addr',true);
channel = fos.getChannel();
lock=channel.tryLock();
//if (lock==null){ //<- not yet work
// channel.close();
// throw new Exception();
//}
ByteBuffer buf = ByteBuffer.allocate(512);
for (char ch : date.toCharArray())
buf.putChar(ch);
buf.putChar('#');
for (char ch : menu.toCharArray())
buf.putChar(ch);
buf.putChar('\r');
buf.putChar('\n');
buf.rewind();
channel.write(buf);
//if (lock!=null){
// lock.release();
// channel.close();
//}
но это не работа. выводится '2 0 1 7 - 0 6 - 0 8' (и раздавлен)
как можно написать так «2017-06-08#ABCD#», используя fos и filechannel?