import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo {
public static void main(String[] args) {
InputStream is=System.in;//标准的输入流对象--读取操作
OutputStream os=System.out;//标准的输出流对象--写的操作
try {
byte[] buffer=new byte[10];//缓冲区//0 1 2 3 4 5 6 7 8 9
int len=0;//读取之后的实际长度//在UTF-8编码下,回车\r 换行\n也各占1个字节
/*
* read方法参数;
* b-读入数据的缓冲区
* off-数组b中将写入数据的初始偏移量
* len-要读取的最大字节数
*/
while((len=is.read(buffer,1,4))!=-1){//buffer缓冲区读入进去2位置开始0 1 2
System.out.println("读取的实际长度-------"+len);
os.write(buffer,0,4);//buffer缓冲区写进去2位置开始
}
System.out.println(len);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(is+"=========");
}
}
运行结果:
off - 相对于开始写入字节处的偏移量
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo {
public static void main(String[] args) {
InputStream is=System.in;//标准的输入流对象--读取操作
OutputStream os=System.out;//标准的输出流对象--写的操作
try {
byte[] buffer=new byte[10];//缓冲区//0 1 2 3 4 5 6 7 8 9
int len=0;//读取之后的实际长度//在UTF-8编码下,回车\r 换行\n也各占1个字节
/*
* read方法参数;
* b-读入数据的缓冲区
* off-数组b中将写入数据的初始偏移量
* len-要读取的最大字节数
*/
while((len=is.read(buffer,0,4))!=-1){//buffer缓冲区读入进去2位置开始0 1 2
System.out.println("读取的实际长度-------"+len);
os.write(buffer,0,4);//buffer缓冲区写进去2位置开始
}
System.out.println(len);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(is+"=========");
}
}
运行结果:
12345
读取的实际长度-------4
1234读取的实际长度-------3
5
4