java 输入输出流的复制文件的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 09:50:37
import java.io.*;
public class fuji
{

public static void main(String arg[])

{
int shuru,shuchu;//记录是否输入输出完成
byte ru[]=new byte[2000];//存放读取的内容
byte chu[]=new byte[2000];
//读入内容
try
{
FileInputStream in1=new FileInputStream("E:\\java\\test.java");
if((shuru=in1.read(ru,0,2000))==-1)
System.out.println("读取文件结束!");//可不知道怎么才能为读完
System.out.println("读取完成!");
}
catch (Exception e)
{
String err=e.toString();
System.out.println(err+" 读入出错!");
}

//复制内容
try
{
FileOutputStream out1=new FileOutputStream("1.text");
//if((shuchu=out1.write(ru,0,2000))==-1)
//{
out1.write(ru,0,2000);//这里的2000要小于ru数组的大小。
out1.close();
System.out.println("复制成功!");
// }
}
cat

可以通过“BufferedReader”读取文件内容,之后通过OutputStreamWriter 写入新文件,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/testCopy.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”
bre = new BufferedReader(new FileReader("D:/test.txt"));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str );//将要写入文件的内容,可以多次write
};
bre .close();//关闭流
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

import java.io.*;

class UseIOj{
public static void main(String [] args){
File f1 = new File("E:/1.jpg");
File f2 = new File("D:/2.jpg");
BufferedInputStream in = null;
PrintStream out = null;
byte[] b = new byte[1024];
long i = 0L;
try{
in = new BufferedInputStream(new FileInputStream(f1));
out =new PrintStream(new BufferedOutputStream(new FileOutputStrea