- 浏览: 427038 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xiang37:
wwwang89 写道这位大哥,你好!很感谢你分享的文章,写的 ...
iPhone调用java的webService -
wwwang89:
这位大哥,你好!很感谢你分享的文章,写的很好,适合我们新手学习 ...
iPhone调用java的webService -
QQ371496669:
能否具体讲解一下为什么StringBuilder的长度会不一样 ...
StringBuilder与StringBuffer相比为什么不是线程安全的 -
Sky_257:
请问 能用abap查询sap服务器的配置、会话、队列、spo ...
使用JCo远程调用SAP系统函数 -
xiang37:
vebasan 写道此句代码的单词有错(标红色的):prop. ...
最简单的EJB示例
Java对文件的操作,提供了上百个类来操作。
对与我们常用的有,OutputStreamWriter、Writer、BufferedOutputStream、FileOutputStream以及FileInputStream、Reader、InputStreamReader等相关类
先做个比较:对文本文件操作时,我们一般使用FileReader、BufferedReader类;而非文件、即二进制文件操作时,我们使用InputStream以及相关类、而对于流的操作,在远程接口RMI,或者通信类的业务处理中,应用较多。
FileOutputStream以及BufferedOutputStream对文件写的操作;当操作大文件时,使用BufferedOutputStream的效率会明显比FileOutputStream高很多。
当然BufferedOutputStream继承自FilterOutputStream;所以其功能也相当的丰富。并且在很多应用中我们都用到了FilterOutputStream这个类,比如zip,jar包、RMI类和接口、crypto提供加密的类和接口等等
文件操作类中,也还有很多比较有用的类,比如文件流描述类FileDescriptor等等;有待挖掘
当有特殊需求是,我们可以继承上面的接口或者扩展上面的类,来实现特殊的业务。
package com.xiva.demo; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import java.util.Scanner; import org.junit.Test; public class FileDemo { /** * * @Description 删除文件 * @author XIVA */ @Test public void deleteFile(){ File file = new File("src/_tian.jpg"); boolean res = false; if(file.exists()){ res = file.delete(); } if(res){ System.out.println("Delete success!"); }else{ System.out.println("Delete fail!"); } } /** * * @Description 文件重命名 * @author XIVA */ @Test public void renameFile(){ File file = new File("src/_tian.jpg"); boolean res = false; if(file.exists() && file.isFile()){ res = file.renameTo(new File("src/tian.jpg")); } if(res){ System.out.println("Copy success!"); }else{ System.out.println("Copy fail!"); } } /** * * @Description 读取文本文件内容 * @author XIVA * @throws IOException */ @Test public void readFile() throws IOException{ InputStream is = FileDemo.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"); // File file = new File("src/content.txt"); // FileReader fReader = new FileReader(file); //流编码才是字节编码 // Reader isReader = new InputStreamReader(is, "UTF-8"); // BufferedReader buffer = new BufferedReader(isReader); // String lineStr; // lineStr = buffer.readLine(); // while(lineStr != null){ // System.out.println(lineStr); // lineStr = buffer.readLine(); // } //Scanner类提供更多方便的方法,最为主要的是为文本文件操作提供便利的函数 Scanner sc = new Scanner(is,"utf-8"); while(sc.hasNextLine()){ System.out.println(sc.nextLine()); } is.close(); } /** * * @Description FileWriter写文件 * @author XIVA * @throws IOException */ @Test public void writeFile() throws IOException{ File file = new File("src/test.txt"); if(!file.exists()){ file.createNewFile(); } // Reader isReader = new FileReader(file); // BufferedReader buffer = new BufferedReader(isReader); // String lineStr; // lineStr = buffer.readLine(); Scanner sc = new Scanner(file,"utf-8"); StringBuffer sBuffer = new StringBuffer(); while (sc.hasNextLine()){ sBuffer.append(sc.nextLine()); } //append if true, then bytes will be written to the end of the file rather than the beginning FileWriter fw = new FileWriter(file,true); BufferedWriter bw = new BufferedWriter(fw); bw.append(sBuffer.toString()); bw.write("I'm XIVA,我是xiva"); bw.newLine(); bw.write("I'm NJIT.Shot_Go,我是Shot_Go"); // String message = "I'm NJIT.Shot_Go,我是Shot_Go"; // for(char mc:message.toCharArray()){ // bw.append(mc); // } bw.flush(); bw.close(); fw.close(); } /** * * @Description FileOutputStream写文件 * @author XIVA * @throws IOException */ @Test public void writeFOSFile() throws IOException{ File file = new File("src/test.txt"); if(!file.exists()){ file.createNewFile(); } //append if true, then bytes will be written to the end of the file rather than the beginning FileOutputStream fOS = new FileOutputStream(file,true); BufferedOutputStream bOS = new BufferedOutputStream(fOS); for (int i=0; i<100000; i++){ String message = "I'm NJIT.Shot_Go,我是Shot_Go"; bOS.write(message.getBytes()); bOS.flush(); bOS.write("\r\n".getBytes()); } bOS.close(); fOS.close(); } /** * * @Description 文件列表 * @author XIVA * @param rootFile */ public void listDictionary(File rootFile){ File[] files = rootFile.listFiles(); for (File file:files){ if(file.isDirectory()){ System.out.println("Add To Tree Node"); listDictionary(file); }else{ System.out.println(file.getPath()); } } } @Test public void testListDictionary(){ File rootFile = new File("E:"+ File.separatorChar +"liber"); listDictionary(rootFile); } }
而对文件的操作,总结为:
1、删除文件或文件夹
2、创建文件或文件夹
3、读取文本或者二进制文件
4、写文本或者二进制文件(对于写二进制文件,我认为在图像处理以及音频视频处理中会使用到)
5、重命名文件,遍历文件,移动文件等等
发表评论
-
Tesseract-OCR的简单使用与训练
2018-06-06 19:45 2767参照: https://www.cnblogs.com/c ... -
JNA与动态链接库交互之使用结构体与结构体数组
2016-10-13 17:54 2197Java调用C/C++动态链接库函数,当传 ... -
ElasticSearch1.7.3 报错Root type mapping not empty after parsing!
2015-12-16 23:02 1357熟悉Lucene也比较久了 ... -
TopN问题的算法实现
2015-05-11 00:15 1530TopN指的是从已经存在的数组中,找出最大(或最小)的前n ... -
NIO之Socket通信
2015-04-11 15:18 0Server端 package com.xiva.nio; ... -
阻塞与非阻塞通讯
2015-03-14 13:18 742在一个阻塞C/S系统中,服务器要为每一个客户连接开启一个线程阻 ... -
[续]Java调用DLL视频解帧,并保存第一关键帧到JPG格式文件
2014-05-15 00:59 1441本篇文章的前一篇是采用FFmpeg解帧,并保持到JPG格式 ... -
Jconsole连接之JVM设置
2014-05-13 03:06 868Jconsole连接之JVM设置 -Xmx256m ... -
Lucene4.x SmartChineseAnalyzer添加扩展词
2013-11-30 23:21 1653之前有一点研究,现在奉上比较完整的代码,可根据项目 ... -
Java ORC
2013-05-22 14:09 0http://blog.csdn.net/lonelyli ... -
OSCache的对action响应的配置
2013-05-08 23:13 1043对action响应的配置其实也不是很特别,这里主要提到的是 ... -
Java PING一个IP地址 isReachable
2013-05-08 17:38 1951Java1.5可以替换很古老Runtime的PING方法 ... -
Java后台返回easyUI的comboxTree数据
2013-05-04 10:08 1695easyUI的实现,其中包括一次加载完毕和动态树: ... -
利用JDBC生成数据库表对应的Class
2013-05-01 19:26 1179简单的实现了Hibernate工具自动生成Class文件的 ... -
HttpClient4示例
2013-04-30 01:27 2137之前做过一个3版本HttpClient简单示例的示例,最 ... -
http client
2013-04-24 17:57 0import java.io.IOException; i ... -
Java6新特性之动态生成Class,并加载
2013-04-24 23:56 1048利用JavaCompiler对文件进行动态编译,JDK1. ... -
利用JNA对文件进行监听之观察者模式
2013-04-25 00:01 1497JNA为第三方的JNI的一个实现包。里面实现了很多wind ... -
Lucene4全文索引示例
2013-04-30 02:20 1551Lucene4.2.1示例,之前也做过3.6的示例。3.6 ... -
改进后的归并排序,对大文件归并排序
2013-04-25 00:05 1133针对大文件,一次无法全部读入内存,可以采用将内容保存到文件 ...
相关推荐
java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...
Java文件操作封装类
java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。
java 文件操作,创建文件,创建目录,删除文件目录
java视频教程 Java文件操作 JavaFile
如何在Java中操作文件呢?转载供大家欣赏
本项目"java文件操作(增删改查)"是基于控制台实现的一个无界面程序,利用Eclipse集成开发环境编写,实现了基本的文件管理功能。下面我们将深入探讨这些知识点。 首先,我们要了解Java中的`java.io`包,它是处理输入...
Java文件操作一例:Copy 复制文件,虽然是复制文件,不过通过本源码你可以学习很多相关的Java基础技巧,比如Java对文件的事件处理、取得目录内容的事件处理、如何弹出文件选择器、如何得到选择文件的绝对路径、如何...
java文件操作大全.chm
java 文件操作 压缩文件 解压文件 复制文件 复制文件夹
java 文件操作工具类
java 文件操作 包括 文件删除 导出jsp Word 格式文件 ,文件合并修改等。
《Java文件操作大全》电子书 本文汇集常用文件操作方法,包括文件的建立/检查与删除,目录的建立/检查与删除,取出目录中文件,文件属性的取得,逐行读取数据等等。
最全的java文件操作大全,包括文件的存储,建立,判断文件是否存在,建立文件删除文件,附加源码!!!
Java文件操作中的一些常用方法的总结,可以参考参考啦!
里面包含了File类的作用、IO流、字节流字符流、异常处理、缓冲流、转换流、序列化、打印流的详细讲解
Java文件操作大全[汇编].pdf
pan.razerpen.file中提供一个多对象单文件存储类FileMap和一个单对象单文件存储类FilePage。 提供方便快捷的基本类型和对象的文件存取方式。详细用法见sample.razerpen.file