import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class CopyFile {
static final String INPUT=”d:/student.txt”; //定义输入文件路径
static final String OUTPUT=”d:/stunew.txt”; //定义输出文件路径
public static void main(String[] args) throws FileNotFoundException{
// TODO 自动生成的方法存根
int iResult;
String str;
RandomAccessFile rdin=new RandomAccessFile(INPUT,”rw”);
//创建具有读/写功能的RandomAccessFile对象rdin
FileInputStream fisIn=new FileInputStream(INPUT); //创建文件读入流对象fisIn
FileOutputStream fosOut=new FileOutputStream(OUTPUT);
//创建文件写出流对象fosOut
try{
System.out.println(“添加文件内容:”);
Scanner sc=new Scanner(System.in); //从键盘读入信息
str=sc.next();
rdin.writeBytes(str); //将读入的字符串信息写入RandomAccessFile对象rdin
System.out.println(“开始复制文件”+INPUT);
do{
//将对象fisIn中的内容写入对象fosOut,即实现文件内容复制的功能,到文件结尾iResult=-1为止
iResult=fisIn.read();
if(iResult != -1)
{
fosOut.write(iResult);
System.out.println(“…\n”);
}
}while(iResult != -1);
System.out.println(INPUT+”已成功复制到 “+OUTPUT);
fisIn.close(); //关闭对象fisIn和对象fosOut
fosOut.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}
运行结果:
知识点
1.字节流
1)输入流(Input Stream)
2)输出流(Output Stream)
2.InputStream
常用方法
abstract int read()
//读取一个字节的数据,并返回读到的字节数
int read(byte [ ] b) //将数据读入一个字节数组,同时返回读到的字节数
int read(byte [ ] b, int off, int len) //从指定位置将数据读入到一个字节组
long skip(long n) //在输入流中跳过n个字节
int available() //返回可用的字节数
void close() //关闭输入流
3.OutputStream
常用方法
abstract int write() //写入固定字节的数据
int write(byte [ ] b) //写入数组b内的所有字节
int write(byte [ ] b, int off, int len) //将数组b内的所有字节写入指定位置
void close() //清空和关闭输出流
void flush() //清空输出流
4.FileInputStream
5.FileOutputStream