- 浏览: 199733 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
gdpglc:
2222222222222222222222222222222 ...
JAVA日期格式输出月份前面不想被自动补0 -
hesai_vip:
JPA SPRING 泛型DAO -
gdpglc:
public static String getTime_ ...
JAVA日期格式输出月份前面不想被自动补0 -
junzilan0929cn:
学习了.
EJB 3 初次学习小结 -
xiaowur:
写的很详细...
对我很有帮助
EJB 3 初次学习小结
自己从网上找了一些,改了改其中某些方法的BUG,又添加了一些新方法,全部使用原始JDK1.6类库组合。IO对文件的操作。不知道属于什么类型的,最后还是选了原创,其实自己只是修改,学习JAVA FILE类库而已。此类不涉及高级内容,比如:不包含批量操作,不包含文件的过滤。这些高级内容下次补充。包括不包含由于文件夹无限延伸导致的listFiles OutOfMemoryError ,解决这个内容请GOOGLE。
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; public class DirOption { /**文件重命名 * @param path 文件目录 * @param oldname 原来的文件名 * @param newname 新文件名 */ public static void renameFile(String path,String oldname,String newname){ if(!oldname.equals(newname)){//新的文件名和以前文件名不同时,才有必要进行重命名 File oldfile=new File(path+"\\"+oldname); File newfile=new File(path+"\\"+newname); if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名 System.out.println(newname+"已经存在!"); else{ oldfile.renameTo(newfile); } } } /** * 以文件流的方式复制文件 * * @param src * 文件源目录 * @param dest * 文件目的目录 * @throws IOException */ public static 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); int c; byte buffer[] = new byte[1024]; while ((c = in.read(buffer)) != -1) { for (int i = 0; i < c; i++) out.write(buffer[i]); } in.close(); out.close(); } /** * 根据文件路径移动到新文件夹.如果新文件夹不存在,将被创建,注:被移动文件与新目录中已有文件名称相同时,将不被移动。不可覆盖的文件移动。 * @param OldDirectoryName * (原目标地址与文件名,如:C:\del\1.txt) * @param NewDirectoryName * (新文件地址,如:C:\del\测试") * @param IsWin * 平台选择行参,如果是WINDOWS平台,参数为TRUE。LINUX/UNIX 为 FALSE。 * @return true */ public static boolean moveFile(String OldDirectoryName, String NewDirectoryName, boolean IsWin) { // 文件原地址 File srcFile = new File(OldDirectoryName); // 判断OldDirectoryName路径是否正确 if (!srcFile.exists()) { System.out.println("失败:" + OldDirectoryName + "原目录不存在或者路径错误"); return false; } // 文件新(目标)地址 File newSrcFile = new File(NewDirectoryName); String newPath = NewDirectoryName; // 判断NewDirectoryName路径是否存在,如果不存在,提示将被新建。 if (!newSrcFile.exists()) { System.out.println("提示:" + NewDirectoryName + "目录不存,将被新建到" + NewDirectoryName); } // new一个新文件夹 File fnewpath = new File(newPath); // 判断文件夹是否存在 if (!fnewpath.exists()) fnewpath.mkdirs(); // 将文件移到新文件里 String newfileSrc; // 判断,选择创建平台 if (IsWin) { newfileSrc = newPath + "\\" + srcFile.getName(); } else { newfileSrc = newPath + "/" + srcFile.getName(); } File newfile = new File(newfileSrc); srcFile.renameTo(newfile); return true; } /**根据文件路径移动到新文件夹,根据cover行参可选择覆盖原文件。 * @param filename 文件名 * @param oldpath 旧目录 * @param newpath 新目录 * @param cover 若新目录下存在和转移文件具有相同文件名的文件时,是否覆盖新目录下文件,cover=true将会覆盖原文件,否则不操作 */ public static void changeDirectory(String filename,String oldpath,String newpath,boolean cover){ if(!oldpath.equals(newpath)){ File oldfile=new File(oldpath+"/"+filename); File newfile=new File(newpath+"/"+filename); if(newfile.exists()){//若在待转移目录下,已经存在待转移文件 if(cover)//覆盖 oldfile.renameTo(newfile); else System.out.println("在新目录下已经存在:"+filename); } else{ oldfile.renameTo(newfile); } } } /** * 根据directoryName路径参数查看directoryName下的所有目录(不包含子目录中的目录,也就是不包含子目录). * * @param directoryName * @return */ public static boolean listFiles(String directoryName) { // 根据参数构造File对象f. File f = new File(directoryName); // 判断directoryName路径是否正确 if (!f.exists()) { System.out.println("失败:" + directoryName + "目录不存在或者路径错误"); return false; } // 使用File对象的listFiles方法取得所有目录. File[] s = f.listFiles(); // 谍代打印 for (int i = 0; i < s.length; i++) { System.out.println(s[i]); } return true; } /** * 新建一个目录,如果此目录名存在,则不被创建. * * @param directoryName * 新建目录的名字.如: "C:\\JAVA\\text1".因为创建目录使用了File对象里的 * mkdirs()方法,所以可以多级创建 * .如果"C:\\JAVA\\text1"中JAVA目录不存在,那么JAVA目录会被创建,之后 接着创建text1目录. * * @return false/true */ public static boolean newDirectory(String directoryName) { File f1 = new File(directoryName); if (f1.exists()) { System.out.println("添加新目录失败:" + directoryName + "目录已存在或者路径错误"); return false; } f1.mkdirs(); return true; } /** * 新建一个文件,如果此文件名存在,则不被创建. * * @param FileName * 新建文件的名字与类型.如:"C:\\javaNew目录测试_xiruo.txt" * @throws IOException * @return false/true * @throws IOException */ public static boolean newFile(String FileName) throws IOException { File f = new File(FileName); if (f.isFile()) { System.out.println("添加新文件失败:" + FileName + "文件已存在或者路径错误"); return false; } f.createNewFile(); return true; } /** * 删除文件,可以是单个文件或文件夹 * * @param fileName * 待删除的文件名 * @return 文件删除成功返回true,否则返回false */ public static boolean delete(String fileName) { File file = new File(fileName); if (!file.exists()) { System.out.println("删除文件失败:" + fileName + "文件不存在"); return false; } else { if (file.isFile()) { return deleteFile(fileName); } else { return deleteDirectory(fileName); } } } /** * 删除单个文件 * * @param fileName * 被删除文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolean deleteFile(String fileName) { File file = new File(fileName); if (file.isFile() && file.exists()) { file.delete(); System.out.println("删除单个文件" + fileName + "成功!"); return true; } else { System.out.println("删除单个文件" + fileName + "失败!"); return false; } } /** * 删除目录(文件夹)以及目录下的文件 * * @param dir * 被删除目录的文件路径 * @return 目录删除成功返回true,否则返回false */ public static boolean deleteDirectory(String dir) { // 如果dir不以文件分隔符结尾,自动添加文件分隔符 if (!dir.endsWith(File.separator)) { dir = dir + File.separator; } File dirFile = new File(dir); // 如果dir对应的文件不存在,或者不是一个目录,则退出 if (!dirFile.exists() || !dirFile.isDirectory()) { System.out.println("删除目录失败" + dir + "目录不存在!"); return false; } boolean flag = true; // 删除文件夹下的所有文件(包括子目录) File[] files = dirFile.listFiles(); for (int i = 0; i < files.length; i++) { // 删除子文件 if (files[i].isFile()) { flag = deleteFile(files[i].getAbsolutePath()); if (!flag) { break; } } // 删除子目录 else { flag = deleteDirectory(files[i].getAbsolutePath()); if (!flag) { break; } } } if (!flag) { System.out.println("删除目录失败"); return false; } // 删除当前目录 if (dirFile.delete()) { System.out.println("删除目录" + dir + "成功!"); return true; } else { System.out.println("删除目录" + dir + "失败!"); return false; } } /**读文件 * @param path * @return * @throws IOException */ public static String BufferedReaderDemo(String path) throws IOException{ File file=new File(path); if(!file.exists()||file.isDirectory()) throw new FileNotFoundException(); BufferedReader br=new BufferedReader(new FileReader(file)); String temp=null; StringBuffer sb=new StringBuffer(); temp=br.readLine(); while(temp!=null){ sb.append(temp+" "); temp=br.readLine(); } return sb.toString(); } /**读文件 * @param path * @return * @throws IOException */ public static String FileInputStreamDemo(String path) throws IOException{ File file=new File(path); if(!file.exists()||file.isDirectory()) throw new FileNotFoundException(); FileInputStream fis=new FileInputStream(file); byte[] buf = new byte[1024]; StringBuffer sb=new StringBuffer(); while((fis.read(buf))!=-1){ sb.append(new String(buf)); buf=new byte[1024];//重新生成,避免和上次读取的数据重复 } return sb.toString(); } public static void main(String[] args) throws IOException { //test here. } }
发表评论
-
JAVA日期格式输出月份前面不想被自动补0
2012-02-15 21:47 29766JAVA日期格式输出月份前面不想被自动补0,那么就用Si ... -
引元数量可变的方法
2009-11-17 16:04 1192public class Test { public ... -
JDBC TOMCAT6 配置数据连接池
2009-11-04 19:32 1484网上有很多这方面的东西,但是有些问题,今天我自己又配置了一下, ... -
java多线程的二种实现
2009-10-20 16:49 1196在JAVA中,有2种形式可以实现自己的多线程程序,第一种是继承 ... -
JAVA读取,控制XML
2009-10-16 16:12 1260有此XML文件,文件名为:Test1XMLDocument,此 ... -
foreach迭代对像与Iterator迭代器对像
2009-10-15 12:41 1816package com; import java.uti ... -
用Java动态代理实现AOP
2009-10-11 10:24 1030转自:http://www.javaresearch.org/ ... -
split的几种用法
2009-10-10 21:42 1014split的几种用法: 第一种,去除str中的,号,并且把 ... -
StringBuffer与StringBuilder
2009-10-10 20:41 970ava.lang.StringBuffer线程安全的可变字符序 ... -
JAVA中的各种 哈希码(HashCode) 与 equals方法在HIBERNATE的实际应用
2009-09-26 14:52 2208转自:http://hi.baidu.com/19 ... -
Java反射机制深入研究
2009-09-26 08:27 869全文转自 http://lavasoft.blog.51cto ... -
Java反射机制实例
2009-09-26 07:59 1180Java提供了一套机制来动态执行方法和构造方法,以及数组操作等 ... -
equals(Object obj);hashCode();toString();
2009-09-25 20:44 1220在JAVA中默认的2个方法 ... -
java序列化的作用
2009-08-20 11:16 2928最近在阅读Core J2EE Patter ... -
JAVA问题集合(转)
2009-08-08 20:23 989感觉不错,转自:http:// ...
相关推荐
- Java的`MappedByteBuffer`类允许将文件映射到内存,使得文件操作如同访问内存一样快速,适合处理大型文件。 9. **大数据量文件读取策略** - **分块读取**:对于大文件,不一次性加载到内存,而是按需分块读取。...
根据给定的信息,我们可以深入探讨Java IO操作中的文件读写技术,特别关注如何从一个文本文件中筛选数据并保存到另一个文件中。 ### Java IO读写文件基础 在Java中,进行文件读写的操作通常涉及两个核心包:`java....
本文将深入探讨Java中的基本文件操作,包括文件的移动、读写以及文本文件的读写。 首先,让我们从文件操作开始。在Java中,我们可以使用`java.io.File`类来创建、删除、重命名或检查文件是否存在。例如,创建一个新...
Java 中文件 IO 流是指 Java 语言中对文件的输入输出操作,通过定义文件流来实现文件的读写操作。文件流是指在程序中用于文件输入输出的对象, Java 中提供了多种文件流类型,包括 InputStream 和 OutputStream 两大...
在这个场景下,我们关注的是Java IO在处理文件时的写入和读取操作,特别是如何进行分页操作以及如何防止出现乱码问题。下面我们将深入探讨这些知识点。 首先,让我们了解一下Java中的IO流。Java IO流分为字符流和...
Java IO提供了丰富的类库,使得开发者能够处理各种类型的输入输出任务,包括文件操作、网络通信、流处理等。在这个“Java io的基本操作很全面的代码”项目中,我们可以看到一系列针对Java IO的实例,对于学习和理解...
除了使用基本的字节流,Java还提供了更高级的`java.nio`包,它提供了一种更高效、更灵活的文件操作方式——NIO(New Input/Output)。NIO引入了通道(Channel)和缓冲区(Buffer)的概念,可以实现多线程间的零拷贝...
Java IO(Input/Output)操作是Java编程中的基础部分...理解并熟练掌握这些类和方法对于进行高效、可靠的文件操作至关重要。在实际项目中,根据需求选择合适的流类型和操作方式,可以更好地处理各种数据输入输出场景。
Java IO 流、文件读取操作 Java IO 流是 Java 语言中的一种基本输入/输出机制,它提供了多种方式来处理输入/输出操作。在 Java 中,IO 流可以分为两大类:字节流和字符流。字节流主要用于处理二进制数据,而字符流...
Java IO文件操作是Java编程中不可或缺的一部分,它允许开发者与外部设备进行数据交换,包括文件、网络、内存等。在Java中,IO流是实现这一功能的核心机制。 首先,流是一个按照顺序组织的数据集合,从起点(源)...
本资源“java_io.rar”提供了关于如何在Java中进行文件操作的示例代码,包括读取、移动、删除和复制文件等常见任务。我们将深入探讨这些主题,以便更好地理解Java I/O API的使用。 首先,让我们从读取本地文件开始...
在Java IO类库中,使用字节流复制文件是一个常见示例,其中涉及到流的嵌套使用、资源管理以及缓冲机制。例如,在使用字节流复制文件时,可以利用try-with-resources语句自动关闭资源,以及使用缓冲区来提高数据传输...
Java 文件操作与IO流是Java编程中的核心概念,主要用于数据的读取、写入和传输。在Java中,文件操作通常涉及到`java.io`包下的类,如`File`、`FileOutputStream`、`OutputStreamWriter`和`BufferedWriter`等。下面将...
在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java.io.File`类用于表示文件和目录路径名的抽象表示。它提供了创建、删除、...
JAVA IO流是Java语言中对输入/输出(Input/Output)操作的抽象表示。它提供了多种流机制来实现文件的读写操作。本文将对JAVA IO流文件读写的知识点进行详细的解释和分析。 1. JAVA IO流的分类 JAVA IO流可以分为两...
集成创建文件,创建目录,删除单个文件,删除单个目录,删除文件夹里内容,复制文件,复制文件夹,剪切文件,剪切文件夹等操作方法. 特上传分享
Java IO文件操作类与复制文件实例,有关文本编辑、FileWriter文件写入、FileReade文件读娶DataStream文件数据流、BufferedReader文件暂存器、FileViewer文件浏览器、复制文件Copy等方面的操作要领,仅供学习参考。
了解这些基础知识后,可以更有效地处理Java程序中的输入输出操作,无论是文件操作、网络通信还是系统间的数据交互。在开发过程中,正确选择和使用Java IO流能够提高程序的效率和灵活性,是每个Java开发者必备的技能...