因为断点续传中要用
所以写了个测试的代码试验一下 问什么得到的文件和原先的文件不一样?
代码如下:
package techtele.temp;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;public class FileTest {
public static RandomAccessFile getFile(String path) {
RandomAccessFile re = null;
try {
File file = new File(path);
if (!file.exists())
file.createNewFile();
re = new RandomAccessFile(file, "rw");
} catch (IOException e) {
e.printStackTrace();
}
return re;
} public FileTest() { RandomAccessFile randomAccessFile = getFile("c:/2.xls");
FileInputStream orFileStream;
try {
orFileStream = new FileInputStream("c:/1.xls");
BufferedReader receiver = new BufferedReader(new InputStreamReader(
orFileStream));
int b;
int i=0;
while ((b=receiver.read())!=-1) {
randomAccessFile.seek(i);
randomAccessFile.write(b);
i++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
public static void main(String[] args) {
FileTest f = new FileTest();
}
}
所以写了个测试的代码试验一下 问什么得到的文件和原先的文件不一样?
代码如下:
package techtele.temp;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;public class FileTest {
public static RandomAccessFile getFile(String path) {
RandomAccessFile re = null;
try {
File file = new File(path);
if (!file.exists())
file.createNewFile();
re = new RandomAccessFile(file, "rw");
} catch (IOException e) {
e.printStackTrace();
}
return re;
} public FileTest() { RandomAccessFile randomAccessFile = getFile("c:/2.xls");
FileInputStream orFileStream;
try {
orFileStream = new FileInputStream("c:/1.xls");
BufferedReader receiver = new BufferedReader(new InputStreamReader(
orFileStream));
int b;
int i=0;
while ((b=receiver.read())!=-1) {
randomAccessFile.seek(i);
randomAccessFile.write(b);
i++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
public static void main(String[] args) {
FileTest f = new FileTest();
}
}
orFileStream = new FileInputStream("c:/1.xls");
BufferedReader receiver = new BufferedReader(new InputStreamReader(
orFileStream));
int b;
int i=0;
int size = orFileStream.available();
while (i< size) {
b=receiver.read();
System.out.println(b);
randomAccessFile.seek(i);
randomAccessFile.write(b);
i++;
}
randomAccessFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}////////////////////这是因为xls文件最后有一些-1被你忽略了
另:你说的不同是指什么??中文乱码,还是其他?〉?
读一些特殊格式的文件,会出现最后几个字节都是-1的情况按照我上面的写法就不会有问题了!!