8 个解决方案
#1
#2
可以的。
Test.java
c:\test.txt
执行结果
output:
Good Luck.
Test.java
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();
}
}
}
c:\test.txt
hello,world.wellcome.good job.
执行结果
output:
world.well
Good Luck.
#3
或者从一个文件的第n个字节截取到第m个字节
#4
ls的地址收藏了。
#5
2楼正解
#6
read(byte[] b, int off, int len)
将最多 len 个数据字节从此输入流读入字节数组。
将最多 len 个数据字节从此输入流读入字节数组。
#7
的确有这个问题。那应该考虑buffer
以下代码解决这个问题。
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();
}
}
}
#8
也在考虑这个问题。只能skip掉吗?
#1
这里API和源码例子
一个英文的,一个翻译的:
http://apicode.gicp.net/class.do?api=selectByfatherIndex&father=255
http://apicodecn.gicp.net/class.do?api=selectByfatherIndex&father=255
一个英文的,一个翻译的:
http://apicode.gicp.net/class.do?api=selectByfatherIndex&father=255
http://apicodecn.gicp.net/class.do?api=selectByfatherIndex&father=255
#2
可以的。
Test.java
c:\test.txt
执行结果
output:
Good Luck.
Test.java
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();
}
}
}
c:\test.txt
hello,world.wellcome.good job.
执行结果
output:
world.well
Good Luck.
#3
或者从一个文件的第n个字节截取到第m个字节
#4
ls的地址收藏了。
#5
2楼正解
#6
read(byte[] b, int off, int len)
将最多 len 个数据字节从此输入流读入字节数组。
将最多 len 个数据字节从此输入流读入字节数组。
#7
的确有这个问题。那应该考虑buffer
以下代码解决这个问题。
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();
}
}
}
#8
也在考虑这个问题。只能skip掉吗?