java nio的实例
- public class NewIOChannel {
- private String file = "";
- private String file2 = "";
- @Before
- public void init(){
- file = NewIOChannel.class.getResource("").getPath()+"\\myfile.txt";
- file2 = NewIOChannel.class.getResource("").getPath()+"\\myfile2.txt";
- System.out.println(file);
- }
- /**
- * outputStream channel写文件
- * @throws IOException
- */
- @Test
- public void FileTest() throws IOException{
- String info[] = {"wang","fwefwe","北京"};
- File file = new File(this.file);
- FileOutputStream output = null;
- output = new FileOutputStream(file);
- FileChannel fout = null;
- fout = output.getChannel();
- ByteBuffer buf = ByteBuffer.allocate(1024);
- for (int i = 0; i < info.length; i++) {
- buf.put(info[i].getBytes("UTF-8"));
- }
- buf.flip();
- fout.write(buf);
- fout.close();
- output.close();
- }
- @Test
- public void writeFile()throws IOException{
- File file = new File(this.file);
- FileInputStream input = new FileInputStream(file);
- FileChannel fileChannel = input.getChannel();
- byte data[] = new byte[(int)file.length()];
- // MappedByteBuffer mbb = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
- // int foot = 0;
- // while(mbb.hasRemaining())
- // data[foot++] = mbb.get();
- ByteBuffer bufs = ByteBuffer.wrap(data);
- fileChannel.read(bufs);
- System.out.println(new String(data));
- fileChannel.close();
- }
- @Test
- public void writereadFile() throws IOException{
- File file = new File(this.file);
- File file2 = new File(this.file2);
- FileInputStream input = new FileInputStream(file);
- FileOutputStream output = new FileOutputStream(file2);
- FileChannel fout = output.getChannel();
- FileChannel fin = input.getChannel();
- ByteBuffer buf = ByteBuffer.allocate(1024);
- int temp =0;
- while ((temp = fin.read(buf)) != -1) {
- buf.flip();
- fout.write(buf);
- buf.clear();
- }
- fin.close();
- fout.close();
- }