我在Java中创建一个简单的应用程序,它允许我读取文本文件.我有一个包含在ByteBuffer中的字节数组:
FileInputStream inputStream = new FileInputStream(name);
FileChannel channel = inputStream.getChannel();
byte[] bArray = new byte[8192];
ByteBuffer byteBuffer = ByteBuffer.wrap(bArray);
int read;
Run Code Online (Sandbox Code Playgroud)
然后我使用while循环来浏览文本文件:
while ( (read=channel.read(byteBuffer)) != -1 )
{
for ( int i=0; i<read; i++ )
//my code
byteBuffer.clear( );
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在这种情况下如何读取Unicode字符.Unicode字符由2个字节(16位)组成,因此我认为bArray [i]保存第一个(更高)8位,随后的8位是该字符的第二部分.所以,例如,如果我需要找出这个字符:"#"当前是否在索引i和i + 1上,我可以这样做吗?(二进制表示中的"#":0010 0011):
if (bArray[i] == (byte)10 && bArray[i+1] == (byte) 11)
Run Code Online (Sandbox Code Playgroud)
谢谢你的回应
| 归档时间: |
|
| 查看次数: |
1074 次 |
| 最近记录: |