当前位置: 技术问答>java相关
读写文件操作的问题,希望各位能帮我看一下
来源: 互联网 发布时间:2015-08-11
本文导语: 请问java中有没有直接实现拷贝文件的方法? 我自己写了一个类,这个类中有两个方法个是读文件,一个写文件。我用的FileOutputStream,FileInputStream这个类来写的。但是生完的文件总是比原文件的多了那么几个字节,问...
请问java中有没有直接实现拷贝文件的方法?
我自己写了一个类,这个类中有两个方法个是读文件,一个写文件。我用的FileOutputStream,FileInputStream这个类来写的。但是生完的文件总是比原文件的多了那么几个字节,问一下这种情况怎么解决?我怀疑可能是我设的动态字节数组造成的。那么怎么能把字节数组未装满的那部分去掉。
我自己写了一个类,这个类中有两个方法个是读文件,一个写文件。我用的FileOutputStream,FileInputStream这个类来写的。但是生完的文件总是比原文件的多了那么几个字节,问一下这种情况怎么解决?我怀疑可能是我设的动态字节数组造成的。那么怎么能把字节数组未装满的那部分去掉。
|
http://www.csdn.net/expert/topic/879/879036.xml?temp=.8178827
|
public void copyFile(String sourcename, String targetname) throws Exception
{
// Open up a reader from sourcename and a writer to targetname.
// Write each character from sourcename to targetname, then close.
BufferedReader breader;//reader from source
BufferedWriter bwriter;//writer to target
try
{
breader = new BufferedReader(new FileReader(sourcename));
bwriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetname)));
while(breader.ready())
bwriter.write(breader.read());
breader.close();
bwriter.close();
}//try
catch(Exception e)
{
throw e;
}//catch
}//copyFile
{
// Open up a reader from sourcename and a writer to targetname.
// Write each character from sourcename to targetname, then close.
BufferedReader breader;//reader from source
BufferedWriter bwriter;//writer to target
try
{
breader = new BufferedReader(new FileReader(sourcename));
bwriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetname)));
while(breader.ready())
bwriter.write(breader.read());
breader.close();
bwriter.close();
}//try
catch(Exception e)
{
throw e;
}//catch
}//copyFile
|
一行一行读试试吧!用LineNumberReader
|
FileOutputStream的方法read(byte[])返回int型的值,该值就是实际读出的字节数。