Java-按块读取文件?
我知道如何按字节读取文件,但找不到如何按字节块读取文件的示例。我有一个字节数组,我想读取512字节的文件并通过套接字发送它们 我尝试读取文件的总字节数,然后减去512字节,直到得到一个小于512字节的块,并发出EOF和传输结束的信号 我正在尝试实现一个TFTP,其中数据以512字节的块发送Java-按块读取文件?,java,sockets,io,inputstream,Java,Sockets,Io,Inputstream,我知道如何按字节读取文件,但找不到如何按字节块读取文件的示例。我有一个字节数组,我想读取512字节的文件并通过套接字发送它们 我尝试读取文件的总字节数,然后减去512字节,直到得到一个小于512字节的块,并发出EOF和传输结束的信号 我正在尝试实现一个TFTP,其中数据以512字节的块发送 无论如何,请举个例子。使用InputStream可以读取给定大小的数组,并将读取限制在此大小 阅读此处:您可以从输入流中使用适当的Read()方法,例如,支持Read(byte[])来读取字节块 类似于:如果
无论如何,请举个例子。使用
InputStream
可以读取给定大小的数组,并将读取限制在此大小
阅读此处:您可以从输入流中使用适当的
Read()
方法,例如,支持Read(byte[])
来读取字节块
类似于:如果要保证512字节的块(构造函数采用块大小参数),可能需要将输入流包装在BufferedInputStream
中
你。。。一次读取512字节
char[] myBuffer = new char[512];
int bytesRead = 0;
BufferedReader in = new BufferedReader(new FileReader("foo.txt"));
while ((bytesRead = in.read(myBuffer,0,512)) != -1)
{
...
}
字节缓冲不是更合适吗?我给你买杯啤酒。干杯,伙计!
char[] myBuffer = new char[512];
int bytesRead = 0;
BufferedReader in = new BufferedReader(new FileReader("foo.txt"));
while ((bytesRead = in.read(myBuffer,0,512)) != -1)
{
...
}