java实现文本文件的拷贝

package com.starain.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

public class CopyFile {

public static void main(String[] args) {

try {
BufferedWriter writer11 = new BufferedWriter(new FileWriter("D:/t.txt"));
writer11.write("1");
writer11.newLine();
writer11.write("2");
writer11.newLine();
writer11.write("3");
writer11.newLine();
writer11.write("4");
writer11.newLine();
writer11.write("5");
writer11.newLine();
writer11.write("6");
writer11.newLine();
writer11.write("7");
writer11.newLine();
writer11.write("8");
writer11.newLine();
writer11.write("9");
writer11.newLine();
writer11.write("0");
writer11.newLine();
writer11.close();
} catch (Exception e) {
System.out.println("创建文件失败");
}

System.out.println("请输入源文件名(例如D:/t.txt),但需要保证文件存在");
Scanner scanner = new Scanner(System.in);
String sfilePathName = scanner.next();
System.out.println("请输入目的文件名(例如D:/tester2.txt)");
String dfilePathName = scanner.next();
CopyAndPaste copy = new CopyAndPaste();
copy.setSfilePathName(sfilePathName);
copy.setDfilePathName(dfilePathName);
copy.copyAndPaste();
}

}
class CopyAndPaste{
private String sfilePathName;//源文件地址
private String dfilePathName;//目的文件地址
BufferedReader bufferedRead;
BufferedWriter bufferedWrite;
String line;
public CopyAndPaste(){

}
public CopyAndPaste(String sfilePathName,String dfilePathName){
this.setSfilePathName(sfilePathName);
this.setDfilePathName(dfilePathName);
}
public void setSfilePathName(String sfilePathName) {
this.sfilePathName = sfilePathName;
}
public String getSfilePathName() {
return sfilePathName;
}
public void setDfilePathName(String dfilePathName) {
this.dfilePathName = dfilePathName;
}
public String getDfilePathName() {
return dfilePathName;
}

public void copyAndPaste(){

try {
bufferedRead = new BufferedReader(new FileReader(sfilePathName));
} catch (FileNotFoundException e) {
System.out.println("file read false");
}
try {
bufferedWrite = new BufferedWriter(new FileWriter(dfilePathName));
} catch (Exception e) {
System.out.println("file write false");
}
try {
line = bufferedRead.readLine();
System.out.println("文本内容:");
while(line!=null){
System.out.println(line);
bufferedWrite.write(line);
bufferedWrite.newLine();
line = bufferedRead.readLine();
}
System.out.println("拷贝完成\nsuccess");
} catch (Exception e) {
System.out.println("copy and paste false");
}
try {
bufferedRead.close();
} catch (Exception e) {
System.out.println("read close false");
}
try {
bufferedWrite.close();
} catch (Exception e) {
System.out.println("write close false");
}
}
}

时间: 2025-01-04 01:56:53

java实现文本文件的拷贝的相关文章

BufferInputStream、BufferOutputStream、BufferedReader、BufferedWriter、Java代码使用BufferedReader和BufferedWriter实现文本文件的拷贝

BufferInputStream和BufferOutputStream的特点: 缓冲字节输入输出流,缓冲流是处理流,它不直接连接数据源/目的地,而是以一个字节流为参数,在节点流的基础上提供一些简单操作. 先说不带缓冲流的工作原理吧,它读取到一个字节/字符,就向用户指定的路径写出去,读一个写一个,所以就慢了,带缓冲流的工作原理,读取到一个字节/字符,先不输出,等凑足了缓冲的最大容量后一次写出去,从而提高了工作效率. 优点:减少对硬盘的读取次数,降低对硬盘的损耗. 附: import java.i

Java IO和Java NIO在文件拷贝上的性能差异分析 (转)

1.       在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取 到用户空间的缓冲区.参看read(byte b[])方法的源码,可知,它会在内部再调用readBytes(b, 0, b.length)方法,而且readBytes(b, 0, b.length)方法是一个native方法(即本地方法),最终通过这个本地方法来发起一次系统调用,即调用系统内核的read()

Java实现文本文件按条件过滤的简便方法

程序开发中经常会碰到处理文本文件中数据的情况,这里通过一个例子来看用java实现文本文件按条件过滤的方法:从文本文件employee.txt中读取员工信息,从中找出1981年1月1日(含)之后出生的女员工. 文本文件empolyee.txt的格式如下: EID   NAME       SURNAME        GENDER  STATE        BIRTHDAY        HIREDATE         DEPT         SALARY 1       Rebecca  

Java实现文本文件分组汇总的简便方法

程序开发中经常会碰到处理文本文件中数据的情况,这里通过一个例子来看用java实现文本文件分组汇总的方法:从文本文件employee.txt中读取员工信息,按照DEPT分组,求出每组的员工个数COUNT和薪酬SALARY总额. 文本文件empolyee.txt的格式如下: EID   NAME       SURNAME        GENDER  STATE        BIRTHDAY        HIREDATE         DEPT         SALARY 1      

Java基础IO文件拷贝练习题

/** * 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt. */ 1.我们看到这个题还是用大化小的思想来做 分析:1.拷贝 >>> 选择什么流呢??>>>拷贝我在上篇博客中写到,我们用字节流,字符流只读只写 2.java结尾 >> 我们可以想到String中的endsWith()方法. 3.拷贝成功后再改后缀名>>File中有一个后缀名的方法renameTo()的方法 4.

Java学习笔记 对象拷贝

1.Java里的clone分为: A:浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. b:深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍. Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法.必须要遵循下面三点 1.在派生类中覆盖基类的clone()方法,并声明为public[Object类中的clone()方法为protected的]. 2.在派生类的clone()方法中,调用super.clone(). 3.

Java IO和Java NIO在文件拷贝上的性能差异分析

1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区.参看read(byte b[])方法的源码,可知,它会在内部再调用readBytes(b, 0, b.length)方法,而且readBytes(b, 0, b.length)方法是一个native方法(即本地方法),最终通过这个本地方法来发起一次系统调用,即调用系统内核的read()方法,内核从

【Java】线程并发拷贝程序

据说大连某211高校的信息学院的李教授非常好这口,他带的每个操作系统本科班,每个学期都必须完成这个程序,不过网上关于这方面的资料甚少,就只有一份C语言版. 然而,那份被历届学生已经抄烂,改实验结果把李教授忽悠了N年的C语言版,所使用的类.所开的线程与进程也不甚合理,把一个本来非常简单的程序搞得十分冗长.明明这个线程并发拷贝程序只涉及到线程的互斥的方面,与线程的同步半点关系,这个线程并发拷贝程序的互斥,也就是每个线程操作的文件只能是一个,保证不出现一个文件被多个文件操作的情况即可,做完拷贝之后根本

浅谈关于java中的深浅拷贝

一.浅拷贝(shallow copy) 1.如何实现浅拷贝? Object类 是所有类的直接或间接父类,Object中存在clone方法,如下 protected native Object clone() throws CloneNotSupportedException; 如果想要使一个类的对象能够调用clone方法 ,则需要实现Cloneable接口, 并重写 clone方法: public class Student implements Cloneable{ private int s