我如何寻找(改变位置)a ByteArrayInputStream(java.io)?它是如此明显的东西,但我似乎无法在任何地方找到一个方法(mark/ reset是不够的,我需要将位置设置到任何地方InputStream).
如果它无法使用java.io并且我必须切换到java.nio并使用a ByteBuffer,我怎么能得到类似于DataOutputStream包装ByteArrayOutputStream使用的东西java.nio?我没有找到任何类型的可自动调整大小的缓冲区.
编辑:我找到了一种方法来实现我正在尝试做的事情,但它有点凌乱.ImageIO.createImageInputStream创建一个ImageInputStream,这正是我想要的(可以搜索和读取基元).但是,使用ByteArrayInputStream返回a FileCacheImageInputStream,这基本上意味着它将字节数组复制到文件中以便进行搜索.
这是我第一次尝试使用Java IO类,但它完全是否定的.它缺少一些基本的(IMO)的特点,而且它有很多方法可以做同样的事情(例如,从文件中您可以使用读取元RandomAccessFile,DataInputStream+ FileInputStream,FileImageInputStream,FileChannel+ ByteBuffer,也许甚至更多).