当前位置: 首页>>代码示例>>Java>>正文


Java CharBuffer.flip方法代码示例

本文整理汇总了Java中java.nio.CharBuffer.flip方法的典型用法代码示例。如果您正苦于以下问题:Java CharBuffer.flip方法的具体用法?Java CharBuffer.flip怎么用?Java CharBuffer.flip使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.nio.CharBuffer的用法示例。


在下文中一共展示了CharBuffer.flip方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: read

import java.nio.CharBuffer; //导入方法依赖的package包/类
public Object read(java.io.Reader r) throws IOException, ClassNotFoundException {
    java.io.
    BufferedReader buf = new BufferedReader(r, 4096);
    CharBuffer arr = CharBuffer.allocate(2048);
    buf.mark(arr.capacity());
    buf.read(arr);
    arr.flip();

    Matcher m = Pattern.compile("<java").matcher(arr);
    if (m.find()) {
        buf.reset();
        buf.skip(m.start());
    } else {
        buf.reset();
    }
    XMLDecoder d = new XMLDecoder(new ReaderInputStream(buf, "UTF-8"));
    return d.readObject();
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:19,代码来源:XMLBeanConvertor.java

示例2: makeSpace

import java.nio.CharBuffer; //导入方法依赖的package包/类
private void makeSpace() {

        int offset = position;
        buf.position(offset);
        // Gain space by compacting buffer
        if (offset > 0) {
            buf.compact();
            position -= offset;
            buf.flip();
            return;
        }
        // Gain space by growing buffer
        int newSize = buf.capacity() * 2;
        CharBuffer newBuf = CharBuffer.allocate(newSize);
        newBuf.put(buf);
        newBuf.flip();
        position -= offset;
        buf = newBuf;
        matcher.reset(buf);
    }
 
开发者ID:ripreal,项目名称:V8LogScanner,代码行数:21,代码来源:RgxReader.java

示例3: byCharsetEncoder_US_ASCII

import java.nio.CharBuffer; //导入方法依赖的package包/类
@Benchmark
public byte[] byCharsetEncoder_US_ASCII() {
    try {
        CharsetEncoder encoder = asciiencode.get();
        CharBuffer buffer  = charbuffergenerator.get();
        buffer.clear();
        buffer.append(STR);
        buffer.flip();

        ByteBuffer outbuffer = bytebuffergenerator.get();
        outbuffer.clear();

        CoderResult result = encoder.encode(buffer, outbuffer, false);
        if (result.isError()) {
            result.throwException();
        }
        byte[] b = new byte[STR.length()];
        outbuffer.flip();
        outbuffer.get(b);
        return b;
    } catch (CharacterCodingException e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:fbacchella,项目名称:RegexPerf,代码行数:25,代码来源:StringToBytes.java

示例4: tmpFileWriteRead

import java.nio.CharBuffer; //导入方法依赖的package包/类
@Test
public void tmpFileWriteRead() throws IOException {
    PrintWriterOf<File> tmpFileOut = IoStream.tempFile().printWriter("UTF-8");
    try {
        tmpFileOut.append("tmpé");
    } finally {
        tmpFileOut.close();
    }
    
    try (BufferedReaderOf<File> tmpFileIn = IoStream.file(tmpFileOut.get()).bufferedReader(UTF_8)) {
        CharBuffer sb = CharBuffer.allocate(5);
        assertThat(tmpFileIn.read(sb)).isEqualTo(4);
        sb.flip();
        assertThat(sb.toString()).isEqualTo("tmpé");
    }
}
 
开发者ID:fralalonde,项目名称:iostream,代码行数:17,代码来源:FileTest.java

示例5: getBytes

import java.nio.CharBuffer; //导入方法依赖的package包/类
public byte[] getBytes(char[] charArr, String charset) {// 将字符转为字节(编码)
	if (charset == null || "".equals(charset.trim())) {
		charset = "UTF-8";
	}
	CharBuffer charBuffer = CharBuffer.allocate(charArr.length);
	charBuffer.put(charArr);
	charBuffer.flip();
	ByteBuffer byteBuffer = Charset.forName(charset).encode(charBuffer);
	return byteBuffer.array();
}
 
开发者ID:fier-liu,项目名称:FCat,代码行数:11,代码来源:StrUtil.java

示例6: test

import java.nio.CharBuffer; //导入方法依赖的package包/类
static void test(String expectedCharset, byte[] input) throws Exception {
    Charset cs = Charset.forName("x-JISAutoDetect");
    CharsetDecoder autoDetect = cs.newDecoder();

    Charset cs2 = Charset.forName(expectedCharset);
    CharsetDecoder decoder = cs2.newDecoder();

    ByteBuffer bb = ByteBuffer.allocate(128);
    CharBuffer charOutput = CharBuffer.allocate(128);
    CharBuffer charExpected = CharBuffer.allocate(128);

    bb.put(input);
    bb.flip();
    bb.mark();

    CoderResult result = autoDetect.decode(bb, charOutput, true);
    checkCoderResult(result);
    charOutput.flip();
    String actual = charOutput.toString();

    bb.reset();

    result = decoder.decode(bb, charExpected, true);
    checkCoderResult(result);
    charExpected.flip();
    String expected = charExpected.toString();

    check(actual.equals(expected),
          String.format("actual=%s expected=%s", actual, expected));
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:31,代码来源:NIOJISAutoDetectTest.java

示例7: assertRoundTrips

import java.nio.CharBuffer; //导入方法依赖的package包/类
private static void assertRoundTrips(String str, int index, int size, byte[] bytes, Memory mem,
      WritableMemory writeMem) throws IOException {
  StringBuilder sb = new StringBuilder();

  mem.getCharsFromUtf8(index, size, sb);
  checkStrings(sb.toString(), new String(bytes, index, size, UTF_8));

  CharBuffer cb = CharBuffer.allocate(bytes.length + 1);
  cb.position(1);
  // Make CharBuffer 1-based, to check correct offset handling
  cb = cb.slice();
  mem.getCharsFromUtf8(index, size, cb);
  cb.flip();
  checkStrings(cb.toString(), new String(bytes, index, size, UTF_8));

  assertEquals(writeMem.putCharsToUtf8(0, str), bytes.length);
  assertEquals(0, writeMem.compareTo(0, bytes.length, mem, 0, bytes.length));

  // Test write overflow
  WritableMemory writeMem2 = WritableMemory.allocate(bytes.length - 1);
  try {
    writeMem2.putCharsToUtf8(0, str);
    fail();
  } catch (Utf8CodingException e) {
    // Expected.
  }
}
 
开发者ID:DataSketches,项目名称:memory,代码行数:28,代码来源:Utf8Test.java

示例8: byte2char

import java.nio.CharBuffer; //导入方法依赖的package包/类
private void byte2char(ByteBuffer bytes, CharBuffer chars) throws IOException {
    decoder.reset();
    chars.clear();
    CoderResult result = decoder.decode(bytes, chars, true);
    if (result.isError() || result.isOverflow()) {
        throw new IOException(result.toString());
    } else if (result.isUnderflow()) {
        chars.flip();
    }
}
 
开发者ID:jalian-systems,项目名称:marathonv5,代码行数:11,代码来源:WriterOutputStream.java

示例9: getSinkContents

import java.nio.CharBuffer; //导入方法依赖的package包/类
@Override
public String getSinkContents() throws IOException {
  File file = getFile();
  Reader reader = new InputStreamReader(new FileInputStream(file), Charsets.UTF_8);
  StringBuilder builder = new StringBuilder();
  CharBuffer buffer = CharBuffer.allocate(100);
  while (reader.read(buffer) != -1) {
    buffer.flip();
    builder.append(buffer);
    buffer.clear();
  }
  return builder.toString();
}
 
开发者ID:paul-hammant,项目名称:googles-monorepo-demo,代码行数:14,代码来源:SourceSinkFactories.java

示例10: readByteArray

import java.nio.CharBuffer; //导入方法依赖的package包/类
/**
 * Read a 'n' bytes from buffer into a String where n is the frameSize - offset
 * so therefore cannot use this if there are other objects after it because it has no
 * delimiter.
 * <p/>
 * Must take into account the text encoding defined in the Encoding Object
 * ID3 Text Frames often allow multiple strings separated by the null char
 * appropriate for the encoding.
 *
 * @param arr    this is the buffer for the frame
 * @param offset this is where to start reading in the buffer for this field
 * @throws NullPointerException
 * @throws IndexOutOfBoundsException
 */
public void readByteArray(byte[] arr, int offset) throws InvalidDataTypeException {
    logger.finest("Reading from array from offset:" + offset);

    //Get the Specified Decoder
    String charSetName = getTextEncodingCharSet();
    CharsetDecoder decoder = Charset.forName(charSetName).newDecoder();

    //Decode sliced inBuffer
    ByteBuffer inBuffer = ByteBuffer.wrap(arr, offset, arr.length - offset).slice();
    CharBuffer outBuffer = CharBuffer.allocate(arr.length - offset);
    decoder.reset();
    CoderResult coderResult = decoder.decode(inBuffer, outBuffer, true);
    if (coderResult.isError()) {
        logger.warning("Decoding error:" + coderResult.toString());
    }
    decoder.flush(outBuffer);
    outBuffer.flip();

    //Store value
    String stringValue = outBuffer.toString();
    value = new PartOfSetValue(stringValue);

    //SetSize, important this is correct for finding the next datatype
    setSize(arr.length - offset);
    logger.config("Read SizeTerminatedString:" + value + " size:" + size);
}
 
开发者ID:openaudible,项目名称:openaudible,代码行数:41,代码来源:PartOfSet.java

示例11: decode

import java.nio.CharBuffer; //导入方法依赖的package包/类
private char decode(byte byte1, byte byte2, byte shiftFlag)
{
    byte1 |= MSB;
    byte2 |= MSB;

    byte[] tmpByte = { byte1,byte2 };
    char[] tmpChar = new char[1];
    int     i = 0,
            tmpIndex = 0;

    switch(shiftFlag) {
    case SOFlag:
        tmpIndex = curSODes;
        tmpDecoder = SODecoder;
        break;
    case SS2Flag:
        tmpIndex = curSS2Des;
        tmpDecoder = SS2Decoder;
        break;
    case SS3Flag:
        tmpIndex = curSS3Des;
        tmpDecoder = SS3Decoder;
        break;
    }

    if (tmpDecoder != null) {
        for(i = 0; i < tmpDecoder.length; i++) {
            if(tmpIndex == i) {
                try {
                    ByteBuffer bb = ByteBuffer.wrap(tmpByte,0,2);
                    CharBuffer cc = CharBuffer.wrap(tmpChar,0,1);
                    tmpDecoder[i].decode(bb, cc, true);
                    cc.flip();
                    return cc.get();
                } catch (Exception e) {}
            }
        }
    }
    return REPLACE_CHAR;
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:41,代码来源:ISO2022.java

示例12: toStringBuilder

import java.nio.CharBuffer; //导入方法依赖的package包/类
private static StringBuilder toStringBuilder(final Readable input)
    throws IOException {
  final StringBuilder text = new StringBuilder();
  final CharBuffer buffer = CharBuffer.allocate(BUFFER_SIZE);
  while (true) {
    final int n = input.read(buffer);
    if (n == -1) {
      break;
    }
    buffer.flip();
    text.append(buffer, 0, n);
  }
  return text;
}
 
开发者ID:s-store,项目名称:s-store,代码行数:15,代码来源:TextFormat.java

示例13: getBytes

import java.nio.CharBuffer; //导入方法依赖的package包/类
private static byte[] getBytes(char[] chars) {
    Charset cs = Charset.forName("UTF-8");
    CharBuffer cb = CharBuffer.allocate(chars.length);
    cb.put(chars);
    cb.flip();
    ByteBuffer bb = cs.encode(cb);
    return bb.array();
}
 
开发者ID:rpgmakervx,项目名称:slardar,代码行数:9,代码来源:IOUtils.java

示例14: main

import java.nio.CharBuffer; //导入方法依赖的package包/类
/**
 *
 * @param args
 */
public static void main(String args[]) {
    CharBuffer charBuffer = CharBuffer.allocate(BUF_SIZE);
    File file = new File("temp.txt");
    file.deleteOnExit();

    charBuffer.put(str);
    charBuffer.flip();
    checkFileContent(charBuffer, file, str);
    charBuffer.position(10);
    checkFileContent(charBuffer, file, str.substring(10));
    charBuffer.position(charBuffer.limit());
    checkFileContent(charBuffer, file, str.substring(charBuffer.limit()));

    char arr[] = new char[BUF_SIZE];
    charBuffer = CharBuffer.wrap(arr);
    charBuffer.put(str);
    charBuffer.flip();
    checkFileContent(charBuffer, file, str);
    charBuffer.position(10);
    checkFileContent(charBuffer, file, str.substring(10));
    charBuffer.position(charBuffer.limit());
    checkFileContent(charBuffer, file, str.substring(charBuffer.limit()));

    char secArr[] = new char[BUF_SIZE];
    charBuffer = CharBuffer.wrap(secArr);
    charBuffer.put(str);
    charBuffer.position(5);
    charBuffer.limit(str.length() - 7);
    charBuffer = charBuffer.slice();
    checkFileContent(charBuffer, file, str.substring(5, (str.length() - 7)));
    charBuffer.position(10);
    checkFileContent(charBuffer, file, str.substring(15, (str.length() - 7)));
    charBuffer.position(charBuffer.limit());
    checkFileContent(charBuffer, file, str.substring(charBuffer.limit()));

    charBuffer = ByteBuffer.allocate(BUF_SIZE).asCharBuffer();
    charBuffer.put(str);
    charBuffer.flip();
    checkFileContent(charBuffer, file, str);
    charBuffer.position(10);
    checkFileContent(charBuffer, file, str.substring(10));
    charBuffer.position(charBuffer.limit());
    checkFileContent(charBuffer, file, str.substring(charBuffer.limit()));

    charBuffer = ByteBuffer.allocateDirect(1024).asCharBuffer();
    charBuffer.put(str);
    charBuffer.flip();
    checkFileContent(charBuffer, file, str);
    charBuffer.position(10);
    checkFileContent(charBuffer, file, str.substring(10));
    charBuffer.position(charBuffer.limit());
    checkFileContent(charBuffer, file, str.substring(charBuffer.limit()));
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:58,代码来源:Bug6856817.java

示例15: tryDecode

import java.nio.CharBuffer; //导入方法依赖的package包/类
@Override
public String
tryDecode(
	byte[]		array,
	boolean		lax )
{
	try{
		ByteBuffer bb = ByteBuffer.wrap(array);

		CharBuffer cb = CharBuffer.allocate(array.length);

		CoderResult cr;
		this_mon.enter();
		try {
			cr = decoder.decode(bb, cb, true);
		} finally {
			this_mon.exit();
		}

		if ( !cr.isError() ){

			cb.flip();

			String	str = cb.toString();

				// lax means that as long as the conversion works we consider it usable
				// as opposed to strict which requires reverse-conversion equivalence

			if ( lax ){

				return( str );
			}

			byte[]	b2 = str.getBytes( getName() );

				// make sure the conversion is symetric (there are cases where it appears
				// to work but in fact converting back to bytes leads to a different
				// result

			/*
			for (int k=0;k<str.length();k++){
				System.out.print( Integer.toHexString(str.charAt(k)));
			}
			System.out.println("");
			*/

			if ( Arrays.equals( array, b2 )){

				return( str );
			}
		}

		return( null );

	}catch( Throwable e ){

			// Throwable here as we can get "classdefnotfound" + others if the decoder
			// isn't available

		return( null );
	}
}
 
开发者ID:BiglySoftware,项目名称:BiglyBT,代码行数:63,代码来源:LocaleUtilDecoderReal.java


注:本文中的java.nio.CharBuffer.flip方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。