示例代码为: -
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class CopyBytes {
public static void main(String [] args){
CopyBytes obj = new CopyBytes();
File file = new File("/home/mount/Data/JAVA/xanadu.bak");
obj.copyBytes(file);
}
public void copyBytes(File ifile){
FileInputStream reader = null;
FileOutputStream output =null;
int c=0;
try{
reader = new FileInputStream(ifile);
output = new FileOutputStream("outfile");
while((c = reader.read()) != -1)
{
System.out.print(c);
output.write(c);
}
System.out.println();
}
catch(FileNotFoundException fnfex){
fnfex.getMessage();
fnfex.printStackTrace();
}
catch(IOException ioex){
ioex.getMessage();
ioex.printStackTrace();
}
finally{
if(reader !=null)
{
System.out.println("Closing the Stream");
try{
reader.close();
System.out.println("Closed the Streams");
}
catch(IOException ioex)
{
ioex.printStackTrace();
}
}
else{
System.out.println("Stream not open");
}
}
}
}
xanadu.bak
的内容如下: -
buffer@ankit:/home/mount/Data/JAVA/practice/src/fileio.bytestreams.com$ cat /home/mount/Data/JAVA/xanadu.bak
IA
当运行上面的代码时,它提供以下输出:
buffer @ ankit:/home/mount/Data/JAVA/practice/src/fileio.bytestreams.com$ java CopyBytes
736510
Closing the Stream
Closed the Streams
而我应该
7365
Closing the Stream
Closed the Streams
我写的文件非常好。请提供您宝贵的意见。
答案 0 :(得分:1)
打印的最后一个字符是10
d 或0x0A
。这是一个换行符。其他组合如0x0D 0x0A
或其他组合可能会在其他平台上发生。
许多编辑在文件末尾添加换行符,如果没有换行符,那就是你所看到的。
使用类似hexdump
的内容来确定您的文件真正包含的内容
您的代码也适用于此: - )