java编程思想中讲到了IO流的思想,以前对于java基础总是不够深入,浅尝辄止,如今碰到语句插桩的时候就感到书到用时方恨少啊!

文件的复制涉及到源文件和新文件(无需手动创建),给出源文件的路径和文件名,然后给出新文件放置的位置,并新任命一个名字。(java文件尽量目录不要放一块,以保证名字的相同,因为类名和java文件名要保持一样)。

方法一:(需要导入IO包)

在主方法写入:

File oldf=new File("F:\\muce2\\Triangle\\src\\Triangle.java");  //源文件路径
File newf=new File("F:\\muce2\\Triangle\\Triangle.java");    //新文件路径(注意要用 \\来代替\,转义字符)
copyfile(oldf,newf);            //调用以下方法

public static void copyfile(File oldfile,File newfile) throws IOException{
//复制文件
FileInputStream ins = new FileInputStream(oldfile);
FileOutputStream out = new FileOutputStream(newfile);
//自定义缓冲对象
byte[] b = new byte[1024];
int n=0;
while((n=ins.read(b))!=-1){
out.write(b, 0, b.length);
}
ins.close();
out.close();

System.out.println("copy success");
}

  此方法直接用FileInputStream和FileOutputStream进行文件的读取和写入。需要创建一个自定义缓冲对象,以及最后关闭两个方法。(并不建议采用)

方法二:(导入IO包)

主方法写入:

int ln=0;
//复制文件
int ln2=copyfile2("F:\\muce2\\Triangle\\src\\Triangle.java","C:\\Users\\Administrator\\Desktop\\Tirangle.java",ln);   //前面的是源文件,后面的是新文件路径,最后一个是行号
//line number
System.out.println(ln2);

public static void copyfile2(String from,String to) throws IOException{
BufferedReader in=new BufferedReader(new FileReader(from));
BufferedWriter out=new BufferedWriter(new FileWriter(to));
String line=null;
int linenumber=0;
while((line=in.readLine())!=null){
out.write(line+"\n");
linenumber++;
}
in.close();
out.close(); System.out.println("line number "+linenumber);
}

  此方法是对源文件进行逐行的写入,到readline()==null时截至迭代。

  注意的是,代码中的空行不是什么都没有,而是换行,写入时有  \n  ,并不是null。两者的区别就像,\n 是桌子上面什么都没有, null是根本没有这桌子。一个是空的,一个是不存在。

  逐行写入复制的优点有很多,可以记录行数,可以在读取该行内容的时候进行判断该行是在方法体内还是体外之类。例如在  while(){}迭代里写入:

if(line.contains("public")  ||   line.startsWith("}")  ||

 line.contains(null)  ||  line.startsWith("//")   ||

  line.startsWith("/*")   ||   line.startsWith("*")   ||

  line.startsWith("*/")){
continue;
}else{
}

这种类似的代码结合数组,就可以记录是否可以进行语句插桩。

java实现文件复制粘贴功能的更多相关文章

  1. 桌面远程连接阿里云服务器(windows)后丧失了双向文件复制粘贴功能的解决方案(第一条博客!)

    近日应公司要求,需在windows服务器上架设一个交易中介软件. 过程之一:将软件压缩文件传到服务器上. 问题:在“运行”对话框通过输入'mstsc' 创建远程连接以后,出现本地桌面与服务器之间无法物 ...

  2. Java io流完成复制粘贴功能

    JAVA 中io字节输入输出流 完成复制粘贴功能: public static void main(String[] args) throws Exception{        // 创建输入流要读 ...

  3. Android EditText 取消复制粘贴功能,取消横向全屏编辑功能(一)

    在做一些安全性的软件时候常常要考虑取消 EditText 上的复制粘贴功能以确保安全性.下面就记录了这个方法: 首先在API-11以下的版本很简单,只需要在Xml布局文件或者用代码把长按属性设置成fa ...

  4. Vbox中unbuntu15.10与win10共享文件 及开启复制粘贴功能

    学习linux,一直使用的是VMware虚拟机,虽然功能很强大,但总感觉页面切换很麻烦.所以转入Vbox的使用,下面介绍下unbuntu15.10与win10共享文件. 一 共享文件夹 步骤1:启动u ...

  5. .NET 实现复制粘贴功能

    老是把自己当作珍珠,就时时有怕被埋没的痛苦.把自己当作泥土吧,让众人把你踩成一条道路. -----<泥土>鲁藜 .NET如何实现复制粘贴功能,具体代码如下: aspx文件: <div ...

  6. 在CMD命令行和PowerShell中实现复制粘贴功能

    在CMD命令行和PowerShell中实现复制粘贴功能         常常使用命令行或者PowerShell的朋友肯定会遇到这样的情况:粘贴文本非常easy,右键--选择粘贴就可以,可是想要复制命令 ...

  7. 仿复制粘贴功能,长按弹出tips的实现

    方案分析: 方案一:监听长按事件弹出PopupWindow[可行,缺点布局是固定的,小语种下会出现菜单截断现象] 方案二:弹出ContextMenu[不可行,因为ContextMenu的菜单是上下排列 ...

  8. iOS开发之--复制粘贴功能

    复制粘贴功能,代码如下: 1.复制功能 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = ...

  9. js实现复制粘贴功能

    在项目中使用到复制粘贴功能,虽然网上有很多大牛封装了很多的插件,但是还是想不去使用插件,就像自己来实现这个功能. 另一篇是禁止复制粘贴 前端er怎样操作剪切复制以及禁止复制+破解等 初步想法: 1. ...

随机推荐

  1. (转)Python Mixins 机制

    原文:https://github.com/dengshuan/notes/blob/master/techs/python-mixins.org https://blog.csdn.net/u012 ...

  2. C++:实现类似MFC的IsKindOf功能

    假设需要一个类别库,改类别库共包含以下5个类:GrandFather(祖父类).Father(父类).Son(儿子类).Daughter(女儿类).GrandSon(孙子类) 各个类之间的继承关系为: ...

  3. Executor框架(一)

    类继承关系 更详细的继承关系: ExecutorComplitionService类 在说Executor接口及实现类之前,先聊聊ExecutorComplitionService. 成员变量 pri ...

  4. C#基础篇八构造函数和面向对象思想

    3.关于 对象创建的几个关键词 Dog d1 = new Dog(); Dog d1 叫做 声明变量 new Dog() 叫做 实例化(创建)对象 4.关于对象.方法和 this 的关系 Dog d1 ...

  5. 自然语言处理--LDA主题聚类模型

    LDA模型算法简介: 算法 的输入是一个文档的集合D={d1, d2, d3, ... , dn},同时还需要聚类的类别数量m:然后会算法会将每一篇文档 di 在 所有Topic上的一个概率值p:这样 ...

  6. AR介绍

    AR介绍 AR全名扩增实境,是一种实时融合现实与虚拟的图像技术. AR技术的三板斧:感知(寻找目标定位位置-与环境交互),渲染(实现产品交互-与客户交互),追踪(捕捉目标运动轨迹-客户环境上下文). ...

  7. sql的存储过程实例--动态根据表数据复制一个表的数据到另一个表

    动态根据表数据复制一个表的数据到另一个表 把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中 如:mac_id=12345678910,则后两位10 对应表为track ...

  8. 基于多层感知机的手写数字识别(Tensorflow实现)

    import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...

  9. MVC应用程序显示上传的图片(续)

    上一篇<MVC应用程序显示上传的图片>http://www.cnblogs.com/insus/p/3597543.html 最后有提及没有实现用户点击图片,显示原图的功能.此篇Insus ...

  10. Join 具体用法

    一.Join 语法概念 Join 按照功能可分为三大类: left join (左连接) 即:取左边表的全部数据,即使右边表没有对应的数据,也是会把左边表的数据取出来,并返回 right join(右 ...