从InputStream流中从指位置截取指定长度的流

demo01

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Test {
private final static int BUFFER_SIZE = 10;
public static void main(String[] args) {
try {
int need2read = 22;
int probe = 0;
byte []data = new byte[BUFFER_SIZE];
FileInputStream fis = new FileInputStream("c:\\test.txt");
fis.skip(6);

while((probe<need2read/BUFFER_SIZE) && (fis.read(data)!=-1)) {
for(int i=0;i<data.length;i++) {
System.out.print((char)data[i]);
}
probe++;
}

//
int overage = need2read%BUFFER_SIZE;
if(overage != 0) {
int ir = fis.read(data,0,overage);
for(int i=0;i< ir;i++) {
System.out.print((char)data[i]);
}
}

fis.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}

demo02

public class Test {
public static void main(String[] args) {
try {
byte []data = new byte[10];
FileInputStream fis = new FileInputStream("c:\\test.txt");
fis.skip(6);
fis.read(data);
fis.close();

for(int i=0;i<data.length;i++) {
System.out.print((char)data[i]);
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}
posted @ 2022-11-18 17:56  liftsail  阅读(402)  评论(0编辑  收藏  举报