Path: blob/master/test/jdk/java/nio/MappedByteBuffer/Basic.java
41149 views
/*1* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/* @test24* @bug 4462336 679903725* @summary Simple MappedByteBuffer tests26*/2728import java.io.*;29import java.nio.*;30import java.nio.channels.*;3132public class Basic {33public static void main(String[] args) throws Exception {34byte[] srcData = new byte[20];35for (int i=0; i<20; i++)36srcData[i] = 3;37File blah = File.createTempFile("blah", null);38blah.deleteOnExit();39FileOutputStream fos = new FileOutputStream(blah);40FileChannel fc = fos.getChannel();41fc.write(ByteBuffer.wrap(srcData));42fc.close();43fos.close();4445FileInputStream fis = new FileInputStream(blah);46fc = fis.getChannel();47MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, 10);48mbb.load();49mbb.isLoaded();50mbb.force();51if (!mbb.isReadOnly())52throw new RuntimeException("Incorrect isReadOnly");5354// repeat with unaligned position in file55mbb = fc.map(FileChannel.MapMode.READ_ONLY, 1, 10);56mbb.load();57mbb.isLoaded();58mbb.force();59fc.close();60fis.close();6162RandomAccessFile raf = new RandomAccessFile(blah, "r");63fc = raf.getChannel();64mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, 10);65if (!mbb.isReadOnly())66throw new RuntimeException("Incorrect isReadOnly");67fc.close();68raf.close();6970raf = new RandomAccessFile(blah, "rw");71fc = raf.getChannel();72mbb = fc.map(FileChannel.MapMode.READ_WRITE, 0, 10);73if (mbb.isReadOnly())74throw new RuntimeException("Incorrect isReadOnly");75fc.close();76raf.close();7778// clean-up79mbb = null;80System.gc();81Thread.sleep(500);82}83}848586