- 浏览: 822281 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
Java IO流各种使用方式总结
①针对普通文本的复制常用方式:FileInputStream fis = new FileInputStream(tempFile);
FileOutputStream fos = new FileOutputStream(new File(dest));
byte[] buff = new byte[1024];
int len = -1;
while ((len = fis.read(buff)) != -1) {
fos.write(buff, 0, len);
}
fis.close();
fos.flush();
fos.close();②效率比较高的复制方式:第一种用法/*2、用新IO里的FileChannel方式*/
FileChannel srcCh = new FileInputStream(src).getChannel();
FileChannel destCh = new FileOutputStream(dest).getChannel();
destCh.transferFrom(srcCh, 0, srcCh.size());
srcCh.close();
destCh.close();第二种用法 fIn = new FileInputStream(args[0]);
fOut = new FileOutputStream(args[1]);
fIChan = fIn.getChannel();
fOChan = fOut.getChannel();
fSize = fIChan.size();
mBuf = fIChan.map(FileChannel.MapMode.READ_ONLY, 0, fSize);
fOChan.write(mBuf); // this copies the file
fIChan.close();
fIn.close();③删除N天前的文件(定期删备份文件)比如删除目录中超过一个星期的所有文本文件/**
* 删除备份数据库文件 注意:指定删除的文件为最后一次修改的文件日期,不是按照文件名也不是
* 文件所创建的日期。指定的path必须是目录名,否则函数不会执行并且没有返回值。
*
* @param day
* 天数
* @param path
* 路径目录名
*/
public static void deletedb(int day, String path) {
long datenum;
Date date;
Date datenow;
Calendar cal = Calendar.getInstance();
Calendar calnow = Calendar.getInstance();
File filepath = CsvOperate.filepathpreproc(path);
File[] files;
if (filepath.exists()) {
if (filepath.isDirectory()) {
files = filepath.listFiles();
for (int i = 0; i < files.length; i++) {
date = new Date(files[i].lastModified());
datenow = new Date();
cal.setTime(date);
calnow.setTime(datenow);
int dec = calnow.get(Calendar.DAY_OF_YEAR)
- cal.get(Calendar.DAY_OF_YEAR);
// 删除指定日期的文件
if (dec >= day) {
files[i].delete();
}
} // end for
} // end if (filepath.isdirectory())
} // end if (filepath.exists())
}
/**
* 文件路径预处理,将windows或unix like 路径转化为统一的unix like路径,如果用户输入有误则返回null
*
* @param pathstr
* @return
*/
public static File filepathpreproc(String pathstr) {
pathstr = pathstr.replaceAll(" \\\\", "/").trim();
// system.out.println(pathstr);
Pattern p = Pattern.compile("(^\\.|^/|^[a-za-z])?:?/.+(/$)?");
Matcher m = p.matcher(pathstr);
// 不符合要求直接返回
if (!m.matches()) {
return null;
}
// 这里开始文件名已经符合要求
File path = new File(pathstr);
return path;
}④另奉完整复制示例public class PrintFiles {
String sourcDir = "";
String desDir = "";
File file = null;
String logFile = "";
public PrintFiles(String root,String sourcDir,String desDir,String logFile){
this.file = new File(root);
this.sourcDir = sourcDir;
this.desDir = desDir;
this.logFile = logFile;
}
/*
* @method检查指定的源目的文件夹是否存在
*/
public int checkDirName(){
File [] fileArray = file.listFiles();
boolean flag_desDir = false;
boolean flag_sourceDir = false;
for(int i=0;i<fileArray.length;i++){
if(fileArray[i].getName().equalsIgnoreCase(sourcDir)){
flag_sourceDir = true;
}
if(fileArray[i].getName().equalsIgnoreCase(desDir)){
flag_desDir = true;
}
if(flag_desDir&&flag_sourceDir){
break;
}
}
if(!flag_desDir){
File d = new File(file.toString().replace('\\', '/')+desDir);
d.mkdir();
}
if(!flag_sourceDir){
return 1;
}
return 2;
}
/*
* @method执行文件拷贝功能
*/
public String copyFiles(){
String root = file.toString().replace( '\\' , '/');
File [] fileArray = new File(root+sourcDir).listFiles();
for(int i=0;i<fileArray.length;i++){
String filename = fileArray[i].getName();
if(filename.endsWith(".txt")){
try {
FileInputStream fileInputStream = new FileInputStream(root+sourcDir+"/"+filename);
FileOutputStream fileOutputStream = new FileOutputStream(root+desDir+"/"+filename);
byte [] b = new byte[1024*5];
int len;
while((len=fileInputStream.read(b))!=-1){
fileOutputStream.write(b, 0, len);
}
fileOutputStream.flush();
fileOutputStream.close();
fileInputStream.close();
writeToLog(root+"/"+logFile, filename);
} catch (FileNotFoundException e) {
e.printStackTrace();
return "FileNotFoundException";
}catch(IOException e){
e.printStackTrace();
return "IOException";
}}}
return "OK";
}
/*
* @method写入日志
*/
public String writeToLog(String logName,String data){
File logfile = new File(logName);
if(!logfile.exists()){
try{
logfile.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}else{
StringBuffer sb = new StringBuffer();
try{
if (data != null && data.length() > 0){
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(logfile)));
String tempdata = null;
while((tempdata=br.readLine())!= null){
sb.append(tempdata+"\n");
}
br.close();
}
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(logfile)), true);
pw.write(sb.toString());
pw.write(data);
pw.flush();
pw.close();
}catch(Exception e){
e.printStackTrace();
}
}
return "";
}
public static void main(String[] args) throws Exception {
String copy = "";
PrintFiles pf = new PrintFiles("e:/","wx1","wx2","ss.log");
int i = pf.checkDirName();
if(i==1){
System.out.println("源文件夹不存在");
}else if(i==2){
System.out.println("完成检查");
copy = pf.copyFiles();
System.out.println("拷贝检查");
}
if(copy.equalsIgnoreCase("FileNotFoundException")){
System.out.println("FileNotFoundException");
}else if(copy.equalsIgnoreCase("IOException")){
System.out.println("IOException");
}
}
}
①针对普通文本的复制常用方式:FileInputStream fis = new FileInputStream(tempFile);
FileOutputStream fos = new FileOutputStream(new File(dest));
byte[] buff = new byte[1024];
int len = -1;
while ((len = fis.read(buff)) != -1) {
fos.write(buff, 0, len);
}
fis.close();
fos.flush();
fos.close();②效率比较高的复制方式:第一种用法/*2、用新IO里的FileChannel方式*/
FileChannel srcCh = new FileInputStream(src).getChannel();
FileChannel destCh = new FileOutputStream(dest).getChannel();
destCh.transferFrom(srcCh, 0, srcCh.size());
srcCh.close();
destCh.close();第二种用法 fIn = new FileInputStream(args[0]);
fOut = new FileOutputStream(args[1]);
fIChan = fIn.getChannel();
fOChan = fOut.getChannel();
fSize = fIChan.size();
mBuf = fIChan.map(FileChannel.MapMode.READ_ONLY, 0, fSize);
fOChan.write(mBuf); // this copies the file
fIChan.close();
fIn.close();③删除N天前的文件(定期删备份文件)比如删除目录中超过一个星期的所有文本文件/**
* 删除备份数据库文件 注意:指定删除的文件为最后一次修改的文件日期,不是按照文件名也不是
* 文件所创建的日期。指定的path必须是目录名,否则函数不会执行并且没有返回值。
*
* @param day
* 天数
* @param path
* 路径目录名
*/
public static void deletedb(int day, String path) {
long datenum;
Date date;
Date datenow;
Calendar cal = Calendar.getInstance();
Calendar calnow = Calendar.getInstance();
File filepath = CsvOperate.filepathpreproc(path);
File[] files;
if (filepath.exists()) {
if (filepath.isDirectory()) {
files = filepath.listFiles();
for (int i = 0; i < files.length; i++) {
date = new Date(files[i].lastModified());
datenow = new Date();
cal.setTime(date);
calnow.setTime(datenow);
int dec = calnow.get(Calendar.DAY_OF_YEAR)
- cal.get(Calendar.DAY_OF_YEAR);
// 删除指定日期的文件
if (dec >= day) {
files[i].delete();
}
} // end for
} // end if (filepath.isdirectory())
} // end if (filepath.exists())
}
/**
* 文件路径预处理,将windows或unix like 路径转化为统一的unix like路径,如果用户输入有误则返回null
*
* @param pathstr
* @return
*/
public static File filepathpreproc(String pathstr) {
pathstr = pathstr.replaceAll(" \\\\", "/").trim();
// system.out.println(pathstr);
Pattern p = Pattern.compile("(^\\.|^/|^[a-za-z])?:?/.+(/$)?");
Matcher m = p.matcher(pathstr);
// 不符合要求直接返回
if (!m.matches()) {
return null;
}
// 这里开始文件名已经符合要求
File path = new File(pathstr);
return path;
}④另奉完整复制示例public class PrintFiles {
String sourcDir = "";
String desDir = "";
File file = null;
String logFile = "";
public PrintFiles(String root,String sourcDir,String desDir,String logFile){
this.file = new File(root);
this.sourcDir = sourcDir;
this.desDir = desDir;
this.logFile = logFile;
}
/*
* @method检查指定的源目的文件夹是否存在
*/
public int checkDirName(){
File [] fileArray = file.listFiles();
boolean flag_desDir = false;
boolean flag_sourceDir = false;
for(int i=0;i<fileArray.length;i++){
if(fileArray[i].getName().equalsIgnoreCase(sourcDir)){
flag_sourceDir = true;
}
if(fileArray[i].getName().equalsIgnoreCase(desDir)){
flag_desDir = true;
}
if(flag_desDir&&flag_sourceDir){
break;
}
}
if(!flag_desDir){
File d = new File(file.toString().replace('\\', '/')+desDir);
d.mkdir();
}
if(!flag_sourceDir){
return 1;
}
return 2;
}
/*
* @method执行文件拷贝功能
*/
public String copyFiles(){
String root = file.toString().replace( '\\' , '/');
File [] fileArray = new File(root+sourcDir).listFiles();
for(int i=0;i<fileArray.length;i++){
String filename = fileArray[i].getName();
if(filename.endsWith(".txt")){
try {
FileInputStream fileInputStream = new FileInputStream(root+sourcDir+"/"+filename);
FileOutputStream fileOutputStream = new FileOutputStream(root+desDir+"/"+filename);
byte [] b = new byte[1024*5];
int len;
while((len=fileInputStream.read(b))!=-1){
fileOutputStream.write(b, 0, len);
}
fileOutputStream.flush();
fileOutputStream.close();
fileInputStream.close();
writeToLog(root+"/"+logFile, filename);
} catch (FileNotFoundException e) {
e.printStackTrace();
return "FileNotFoundException";
}catch(IOException e){
e.printStackTrace();
return "IOException";
}}}
return "OK";
}
/*
* @method写入日志
*/
public String writeToLog(String logName,String data){
File logfile = new File(logName);
if(!logfile.exists()){
try{
logfile.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}else{
StringBuffer sb = new StringBuffer();
try{
if (data != null && data.length() > 0){
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(logfile)));
String tempdata = null;
while((tempdata=br.readLine())!= null){
sb.append(tempdata+"\n");
}
br.close();
}
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(logfile)), true);
pw.write(sb.toString());
pw.write(data);
pw.flush();
pw.close();
}catch(Exception e){
e.printStackTrace();
}
}
return "";
}
public static void main(String[] args) throws Exception {
String copy = "";
PrintFiles pf = new PrintFiles("e:/","wx1","wx2","ss.log");
int i = pf.checkDirName();
if(i==1){
System.out.println("源文件夹不存在");
}else if(i==2){
System.out.println("完成检查");
copy = pf.copyFiles();
System.out.println("拷贝检查");
}
if(copy.equalsIgnoreCase("FileNotFoundException")){
System.out.println("FileNotFoundException");
}else if(copy.equalsIgnoreCase("IOException")){
System.out.println("IOException");
}
}
}
相关推荐
Java io流的总结
JAVA_IO流学习总结
下面是对Java IO流的详细总结: 1. 流的概念: 流是一种抽象的数据传输方式,可以将数据从一个地方传输到另一个地方。Java中的流分为输入流和输出流,分别用于读取和写入数据。流按照处理数据的不同类型,又可以...
Java IO流总结 Java IO流是Java语言中最基本和最重要的输入/输出机制,负责将数据从外部世界输入到Java应用程序中或将数据从Java应用程序输出到外部世界。IO流可以分为两大类:字节流和字符流。 1. 节点流:离数据...
总结来说,Java IO流是一个庞大的体系,覆盖了从基础的文件操作到复杂的网络通信,理解并熟练掌握这一部分将极大地提升Java开发者的技能。通过学习和实践,开发者可以灵活地处理各种数据输入输出场景,为应用程序...
在这个大总结中,我们将深入探讨Java IO流的基本概念、分类、常用类以及实践应用。 1. **基本概念** - **流(Stream)**:在Java中,流是一个抽象的概念,代表数据的有序序列。它可以是字节流或字符流,流向可以是...
这是别人总结的很有实用价值的javaIO流教程。
有关Java输入输出流的总结有关Java输入输出流的总结有关Java输入输出流的总结
Java IO流是Java平台中处理输入输出操作的核心组件,它允许程序与各种数据源(如文件、设备、网络连接)进行交互。IO流系统由多个类和接口组成,它们位于java.io包中,为开发者提供了读写数据的丰富功能。在Java中,...
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
### Java IO流的各种组合使用与总结 在Java中,输入/输出(IO)流是进行数据读取和写入操作的基础。本文将详细介绍Java中IO流的多种组合使用方法,并结合示例代码来阐述每种配置的具体应用。 #### 1. 带缓冲的文件...
总结来说,Java的IO流是一个庞大且重要的主题,涵盖了数据的输入、输出、缓冲、转换等多个方面。对于初学者而言,理解和掌握IO流的基本概念、分类以及常用类的用法是至关重要的。通过实践练习,可以加深对IO流的理解...
java的IO流总结:包含Inputstream,OutputStream,writer和reader
总结一下,Java IO流提供了丰富的数据传输工具,而Socket是网络通信的核心。通过结合两者,我们可以构建强大的网络应用,例如文件传输、聊天室等。对于初学者来说,理解这些基础概念并实践编写相关代码,将有助于...
总结来说,Java IO流是处理文件和网络数据传输的核心组件,理解其原理和分类有助于更高效地进行数据处理。通过合理地组织和管理IO流,可以在不同的应用场合下灵活使用,满足各种数据输入输出的需求。
### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...
总结一下,Java IO流是Java处理输入输出的重要工具,包括字节流和字符流,以及丰富的子类和接口。通过熟练掌握这些API,开发者可以有效地读写文件、网络数据,甚至实现对象的序列化。在个人资料管理中,根据不同的...
自已写了一个JAVA IO流的增删改查操作, 算是对IO的总结吧,初学者可以看下!
JavaIO流学习总结 JavaIO流是Java语言中最基本的输入/输出机制,它提供了多种方式来读取和写入数据。下面是JavaIO流的学习总结。 一、 IO流的分类 IO流可以从不同的角度进行分类,包括: * 按流的方向分为:输入...