不使用Java流类的Java FileChannel类

不使用Java流类的Java FileChannel类,java,nio,Java,Nio,我想从文件中进行输入/输出。我的要求是不使用任何java流类。 我做了一些研究,很可能需要使用FileChannel 但是,如何在不使用Java流类的情况下获取特定文件的FileChannel对象 是通过使用RandomAccessFile实现的吗?通过使用RandomAccessFile类,我是否满足了“不使用任何java流类”的要求?如果不使用InputStream、OutputStream或RandomAccessFile,就无法访问FileChannel 而RandomAccessFil

我想从文件中进行输入/输出。我的要求是不使用任何java流类。 我做了一些研究,很可能需要使用FileChannel

但是,如何在不使用Java流类的情况下获取特定文件的FileChannel对象


是通过使用RandomAccessFile实现的吗?通过使用RandomAccessFile类,我是否满足了“不使用任何java流类”的要求?

如果不使用
InputStream
OutputStream
RandomAccessFile
,就无法访问
FileChannel

RandomAccessFile
实现了
DataInput
DataOutput
,后者提供了从二进制流读取字节的接口。所以我相信即使是
RandomAccessFile
也是一种流类

编辑:

我真的不知道您在什么上下文中将类称为流类
RandomAccessFile
仍然可以在您的案例中使用,因为对流的读写对于用户来说非常抽象。它显示了如何以非顺序方式读取或写入文件

通常,我们将IO流分为以下几类

  • 字节流处理原始二进制数据的I/O

  • 字符流自动处理字符数据的I/O 处理与本地字符集之间的转换

  • 缓冲流通过减少数据流的数量来优化输入和输出 对本机API的调用

  • 扫描和格式化允许程序读写格式化的文件 文本

  • 来自命令行的I/O描述了标准流和 控制台对象

  • 数据流处理基本数据类型和字符串的二进制I/O 价值观

  • 对象流处理对象的二进制I/O


但是,
RandomAccessFile
不属于上述任何类别,它属于JDK 7发行版(NIO)中引入的I/O机制。它将属于通道I/O而不是流I/O。因此,使用
RandomAccessFile

如果不使用
InputStream
OutputStream
RandomAccessFile
,就无法访问
文件通道

RandomAccessFile
实现了
DataInput
DataOutput
,后者提供了从二进制流读取字节的接口。所以我相信即使是
RandomAccessFile
也是一种流类

编辑:

我真的不知道您在什么上下文中将类称为流类
RandomAccessFile
仍然可以在您的案例中使用,因为对流的读写对于用户来说非常抽象。它显示了如何以非顺序方式读取或写入文件

通常,我们将IO流分为以下几类

  • 字节流处理原始二进制数据的I/O

  • 字符流自动处理字符数据的I/O 处理与本地字符集之间的转换

  • 缓冲流通过减少数据流的数量来优化输入和输出 对本机API的调用

  • 扫描和格式化允许程序读写格式化的文件 文本

  • 来自命令行的I/O描述了标准流和 控制台对象

  • 数据流处理基本数据类型和字符串的二进制I/O 价值观

  • 对象流处理对象的二进制I/O


但是,
RandomAccessFile
不属于上述任何类别,它属于JDK 7发行版(NIO)中引入的I/O机制。它将属于通道I/O而不是流I/O。因此,使用
RandomAccessFile

如果不允许流,我将使用JNI

如果不允许流,我会使用JNI

“需求”是指“家庭作业”吗?“需求”是指“家庭作业”@Kadne在java中有没有一种不使用任何流类的I/O方法?我认为困难不在于使用JNI。@Kadne有没有一种在java中不使用任何流类而进行I/O的可能方法?我认为困难不在于使用JNI。