怎样使用java编程实现文件的剪切/移动

作者&投稿:枕邱 (若有异议请与网页底部的电邮联系)
怎样使用java编程实现文件的剪切/移动~

可以通过BufferedReader
流的形式进行流读取,之后通过readLine方法获取到的内容,之后通过if判断来实现在某些特定位置的内容的剪切和移动操作。
举例:
BufferedReader
bre
=
null;
OutputStreamWriter
pw
=
null;//定义一个流
try
{
String
file
=
"D:/test/test.txt";
bre
=
new
BufferedReader(new
FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw
=
new
OutputStreamWriter(new
FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
while
((str
=
bre.readLine())!=
null)
//
判断最后一行不存在,为空结束循环
{
if(str.indexOf("排除")<0){//判断是否需要舍弃
pw.write(str);//将要写入文件的内容,可以多次write
}
}
bre.close();//关闭流
pw.close();//关闭流
解释:以上方法是实现的删除,if中的条件改变下,即可实现其余的功能。
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

//移动文件
public static boolean Move(String f1, String f2)
{
// 要移动的文件或文件夹
File file = new File(f1);

// 目标位置
File dir = new File(f2);

//移动
boolean success = file.renameTo(new File(dir, file.getName()));

return success;
}
//复制文件

public static void Copy(String oldPath, String newPath)
{
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) {
InputStream inStream = new FileInputStream(oldPath);
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread;
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println( "error ");
e.printStackTrace();
}
}

可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到的内容,之后通过if判断来实现在某些特定位置的内容的剪切和移动操作。
举例:
BufferedReader bre = null;
OutputStreamWriter pw = null;//定义一个流
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
if(str.indexOf("排除")<0){//判断是否需要舍弃
pw.write(str);//将要写入文件的内容,可以多次write
}
}
bre.close();//关闭流
pw.close();//关闭流
解释:以上方法是实现的删除,if中的条件改变下,即可实现其余的功能。
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

ok,我也是刚刚整完了一个小的需求,改变了同一块磁盘上的文件的目录结构,需要使用到所谓的剪切的问题。

Java移动文件的话很简单, 使用File类的renameTo(File file)方法就能搞定

例如:原文件在C:\\User\\Program\\System\
ihao.txt,想把它移动到D:/Source文件夹中

class Test{

public static void main(String[] arr){

//原文件路径

String source="C:\\User\\Program\\System\
ihao.txt";

//原文件File类对象

File sourceFile=new File(source);

//目标文件夹路径

String targetDir="D:\\Source";

//获取原文件的名字 ,此时是nihao.txt

String docName=sourceFile.getName();

//拼接目标的文件夹全路径

String targetPath=targetDir+"\\"+sourceFile.getName();

//创建目标文件夹的File类,并判断是否存在,如果不存在则创建对应的文件夹

File targetFile=new File(targetDir);

if(!targetFile.exists()){ 

targetFile.mkdirs();

}

//重命名即可以实现对应的功能

sourceFile.renameTo(new File(targetPath));

}

}

总结:

  1. 上述代码只是简单的移动操作,没有实现文件夹的复制移动,当然实现起来很简单,使用递归就可以完成对应的操作;

  2. 当然可以将上述代码再写一个递归整理成一个方法,以后直接用就行,也可以写一个properties文件控制对应的原文件路径以及目标路径

  3. 同磁盘,比如都是C盘的移动很快,但是不同磁盘之间传输大文件会使用很多IO资源

  4. 曾有人说用多线程的方式实现,但是一台电脑的话没有必要,多线程的话会频繁使用磁头寻址,效率会低于单线程。因为此时的瓶颈并不是CPU而是磁盘IO。



用多线程啊。
如果是多个文件,就每个线程处理一个文件。如果文件体积较大,但数目不大的话,就用多个线程分段读取文件的部分。再写入到相应的位置。

如果是Windows平台的话,可以用DOS命令行控制。。。这是一种方法。。。记得是Runtime这个包吧。。。最近学了JavaWeb Swing都快忘光了。。。 楼上的也是一个好方法。但是如果没教到可能有点难掌握吧。。

使用 FileChannel的transferTo方法。

jdk 7的java.nio.file.Files 类提供了一个 move方法移动文件。


在Java怎么开始编程?
1、首先,你需要拥有对Java语言的兴趣,如果你能够一直对Java语言拥有兴趣,并且从心底喜欢Java编程员,那么在学习Java编程语言的过程中,如果遇到什么问题都能靠自己想办法解决,这世界增加成就感的一种好方法。所以在第一次接触编程语言时,IT培训认为保持对Java编程语言浓厚的兴趣是非常重要的。 2、学习Java,基础知识是非...

如何使用java语言开发安卓应用?
4. 编写Java代码:选择创建的项目,打开“MainActivity.java”文件,并在其中编写Java代码。在这个文件中,你可以使用Java语言的所有特性来实现应用程序的功能。5. 运行应用程序:完成Java代码的编写后,你可以使用Android Studio提供的模拟器或手动连接到设备来运行应用程序。为了启动模拟器,请选择“Run” ...

Java编程,做一个最简单的输出程序,输出内容:姓名,班级,专业
Java编程是一种广泛使用的编程语言,它可以用于构建各种应用程序,包括桌面应用程序、Web应用程序和移动应用程序。如果你想做一个最简单的输出程序,你可以使用Java的System.out.println()方法。以下是一个简单的例子:javapublic class SimpleOutput { public static void main(String[] args) { \/\/...

什么样的场景下,需要利用java的“反射”特性编程?
Java的反射特性,实质上是程序在运行时动态获取类的信息并操作类、实例、方法和字段的能力。这种技术在很多场景下非常有用,比如配置管理、动态代理、框架实现等。在Spring框架中,反射特性被广泛使用于依赖注入和类加载过程。当Spring初始化服务端时,通过反射扫描指定目录下的类,如果类上标注了特定注解,...

java编程工具(Java编程工具(提高效率,简化开发))
Java是一种广泛使用的编程语言,它可以用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。在Java编程中,使用一些工具可以提高开发效率,简化开发过程。本文将介绍一些常用的Java编程工具,并提供操作步骤以供参考。一、Eclipse Eclipse是一款开放源代码的集成开发环境(IDE),它支持...

java怎么入门?
一、Java语言概述 首先得知道Java是什么,Java是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言,是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。那么为什么要使用这个语言呢,Java语言的特点跨平台性,通过Java语言编写...

Java怎么学习 入门Java编程的指南?
5. 学习面向对象编程:Java是一种面向对象的编程语言,学习面向对象的概念,例如类、对象、继承、多态等。6. 学习常用的Java类库和API:Java提供了丰富的类库和API,包括输入输出、集合框架、网络编程等。学习如何使用这些类库和API可以提高编程效率。7. 解决问题和实践项目:尝试解决一些实际问题,或者完成...

java编程是什么?用来做什么?怎么用呢?
Java是一种Sun公司开发的语言。它是面向对象的,继承了C++的大多数风格。但是相比之下,面向对象概念更深。学习使用Java语言首先要下载JDK的J2EE的安装程序进行安装,到Sun公司的网站上找吧。然后最好到桌面-我的电脑-属性-高级-环境变量中添加\/修改Path变量,用分号隔开,指定JDK的安装目录和其下的Bin...

java主要用在什么地方(java一般用来干嘛)
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。

java编程开发语言编辑脚本应该怎么做?
Java脚本API是一种独立于框架的脚本语言,使用来自于Java代码的脚本引擎。通过java脚本API,可以使用Java语言编写定制\/可扩展的应用程序并将自定义脚本语言选择留给终用户。Java应用程序开发者不需要在开发过程中选择扩展语言。如果你使用JSR-223API来编写应用,那么你的用户可以使用任何JSR-223兼容的脚本语言。

东明县17231464012: 怎样使用java编程实现文件的剪切/移动 -
宏媛橘红: 用多线程啊.如果是多个文件,就每个线程处理一个文件.如果文件体积较大,但数目不大的话,就用多个线程分段读取文件的部分.再写入到相应的位置.

东明县17231464012: 怎么用JAVA中的FILE类实现剪切文件到新的路径 -
宏媛橘红: 你好!剪切实际上 就是复制,删除 打字不易,采纳哦!

东明县17231464012: 怎么用JAVA中的FILE类实现剪切文件到新的路径
宏媛橘红: 通过流的形式复制到e盘,然后删除当前文件就可以了

东明县17231464012: 用java如何实现将大的日志文件分隔成小文件 -
宏媛橘红: 用该类进行读写文件.. RandomAccessFile void seek(long pos) 设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作. 可以设置 pos的值为 0 就行了..自己去查一下API文档可以更好的理解..

东明县17231464012: 用java代码或者C++代码或者cmd命令怎么剪切文件到系统剪切板? -
宏媛橘红: 剪切就是“copy 原始内容-->past 到目的位置-->delete原来位置的内容”,这是一个过程

东明县17231464012: 使用Java制作一个简单的文件拷贝程序 -
宏媛橘红: 以文件流的方式复制文件 public void copyFile(String src,String dest) throws IOException...{ FileInputStream in=new FileInputStream(src); File file=new File(dest); if(!file.exists()) file.createNewFile(); FileOutputStream out=new FileOutputStream(file); ...

东明县17231464012: java将一个文件复制到剪切板 -
宏媛橘红: 首先要明白 “剪切板” 里面能放什么内容. 剪切板只能放 “文本内容”或者“文件路径”, 如果你选中文字,然后复制,那么放在剪切板就是文字内容;如果你选择一个文件,复制,那放在剪切板里面是 文件的路径.你说的 文件复制到剪切板 是不合理的.Java 通过 java.awt.datatransfer.Clipboard 访问剪切板.

东明县17231464012: JAVA编写记事本怎样实现保存.剪切.复制.粘贴(这个程序只有Open) -
宏媛橘红: public boolean saveDialog() //保存 { FileDialog filedialog=new FileDialog(this,"SaveAs",FileDialog.SAVE); filedialog.setFile(this.file.getName());filedialog.setVisible(true);if((filedialog.getDirectory()!=null)&&(filedialog.getFile()!=null)){ this.file...

东明县17231464012: 如何用java把任意大小的文件分割为10份,然后再合并 -
宏媛橘红: java.io.File 得到文件长度,分成10份的字节数(不完全是平均的).....使用FileInputStream读入、FileOutputStream写到10外文件 ............合并 时,文件流 反操作 ......

东明县17231464012: 如何用java实现切割一张图片 -
宏媛橘红: BufferedImage类有一个getSubimage()方法,以下来自API public BufferedImage getSubimage(int x,int y,int w,int h) 返回由指定矩形区域定义的子图像.返回的 BufferedImage 与源图像共享相同的数据数组.参数:x - 指定矩形区域左上角的 X 坐标 y - 指定矩形区域左上角的 Y 坐标 w - 指定矩形区域的宽度 h - 指定矩形区域的高度 返回:BufferedImage,它是此 BufferedImage 的子图像.抛出:RasterFormatException - 如果指定区域不包含在此 BufferedImage 中

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网