请问一个Java读文件的方法,读出来和写入之后比较,发现内容不一样
请教一个Java读文件的方法,读出来和写入之后比较,发现内容不一样
请教一个Java读文件的方法,读出来和写入之后比较,发现内容不一样,不知道哪里错了? 请赐教!
------解决方案--------------------
楼主有没有比过两个byte数据的区别?byte数据和硬盘上数据的区别?
请教一个Java读文件的方法,读出来和写入之后比较,发现内容不一样,不知道哪里错了? 请赐教!
package TEST;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
public class TEST {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
int RecvLen = 0;
int isReadByte = 0;
long FileLength = 0;
String FileName = "D:\\data.bin";
RandomAccessFile file = new RandomAccessFile(FileName, "r");
FileLength = file.length();
file.close();
byte[] RecvBuf = new byte[1024];
byte[] BackBuf = new byte[(int) FileLength];
int i = 0;
while(FileLength!= RecvLen)
{
isReadByte = Read(RecvBuf,FileName,RecvLen);
RecvLen += isReadByte;
for(int x = 0;x < isReadByte;x++)
{
BackBuf[i++] = RecvBuf[x];
}
}
FileOutputStream fos = new FileOutputStream("D:\\data_back.bin");
fos.write(BackBuf);
fos.close();
}
public static int Read(byte[] buf, String FileName,int RecvLen)
{ int sendbuflen = 960;
RandomAccessFile file = null;
try {
file = new RandomAccessFile(FileName, "r");
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
if(file.length()>(RecvLen+960))
{
sendbuflen = 960;
}
else
{
sendbuflen = (int) (file.length() - RecvLen);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int isReadByte = 0;
try {
isReadByte = file.read(buf, RecvLen, sendbuflen);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(file!=null)
{
try {
file.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return isReadByte;
}
}
------解决方案--------------------
楼主有没有比过两个byte数据的区别?byte数据和硬盘上数据的区别?