流的操作在项目开发中用的很普遍,虽然每次在网上都可以百度到,但是总感觉心里不踏实,对此,关于流的操作做一个详细的总结---

1、根据数据的流向来分:
输出流:是用来写数据的,是由程序(内存)--->外界设备
输入流:是用来读数据的,是由外界设备--->程序(内存)
如何区分:一般来说输入流带有Input,输出流带有Output

2、根据流数据的格式来分:
字节流:处理声音或者图片等二进制的数据的流,比如InputStream
字符流:处理文本数据(如txt文件)的流,比如InputStreamReader
如何区分:可用高低端流来区分,所有的低端流都是字节流,所有的高端流都是字符流

String path = "F:\\testoyy\\test";
String filename = "test.txt";

/**
*
* @Description: 创建目录
*/
public void createDir(String path){
File dir=new File(path);
if(!dir.exists())
dir.mkdir();
}

/**
* @Description: 创建新文件
*/
public void createFile(String path,String filename) throws IOException{
File file=new File(path+"/"+filename);
if(!file.exists())
file.createNewFile();
}

/**删除文件*/
public void delFile(String path,String filename){
File file=new File(path+"/"+filename);
if(file.exists()&&file.isFile())
file.delete();
}

/**删除目录
* 要利用File类的delete()方法删除目录时,必须保证该目录下没有文件或者子目录,否则删除失败,
* 因此在实际应用中,我们要删除目录,必须利用递归删除该目录下的所有子目录和文件
*/
public void delDir(String path){
File dir=new File(path);
if(dir.exists()){
File[] tmp=dir.listFiles();
for(int i=0;i<tmp.length;i++){
if(tmp[i].isDirectory()){
delDir(path+"/"+tmp[i].getName());
}
else{
tmp[i].delete();
}
}
dir.delete();
}
}

/**
* 清空文件内容
* @param fileName 文件路径名,例如 F:\\testoyy\\test.txt
* @return
* @throws EMPException
*/
public boolean emptyTxtFile(String fileName)
throws Exception
{
FileOutputStream fos = null;
try
{
File file = new File(fileName);
//判断文件是否存在,不存在就新建一个
if (!file.exists())
{
return file.createNewFile();
}

//输出流
fos = new FileOutputStream(fileName);
fos.write(new byte[0]);

} catch (Exception e)
{
// EmpExecutionContext.error(e,"将字符串内容写入文件异常!fileName:" + fileName);
// throw new EMPException(IErrorCode.B20002,e);
} finally
{
if(fos != null)
{
try {
fos.close();
} catch (IOException e) {
// EmpExecutionContext.error(e,"关闭流异常!fileName:" + fileName);
// throw new EMPException(IErrorCode.B20003,e);
}
}
}
return true;

}

java文件创建和删除的更多相关文章

  1. java文件创建、删除、读取、写入操作大全

    一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的 ...

  2. java操作文件创建、删除

    java操作文件创建.删除: package test; import java.io.File; import java.io.IOException; import org.slf4j.Logge ...

  3. Java 代码完成删除文件、文件夹操作

    import java.io.File;/** * 删除文件和目录 * */public class DeleteFileUtil {    /**     * 删除文件,可以是文件或文件夹     ...

  4. 【转】Linux 文件夹文件创建与删除

    [转自:Linux文件夹文件创建.删除 - 风生水起 - 博客园] 1. 删除文件夹 rm -rf  fileNamede> -删除文件夹实例:rm -rf /var/log/httpd/acc ...

  5. java集合循环删除

    java集合循环删除,java list集合操作,java循环.分享牛,分享牛原创.java集合删除方法. 2.6.1.第一种方式 list.add("1"); list.add( ...

  6. JAVA中循环删除list中元素的方法总结【转】

    印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...

  7. java 用PDFBox 删除 PDF文件中的某一页

    依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox-app ...

  8. java中循环删除list中元素的方法

    重点哈 印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接 ...

  9. java程序实现删除本地文件

    import java.io.File; public class Test { public static void main(String args[]) {    Test t = new Te ...

随机推荐

  1. (27)IO流小结

    字节流 输入字节流: ---------| InputStream 所有输入字节流的基类. 抽象类 ------------| FileInputStream 读取文件的输入字节流 --------- ...

  2. 解决Chrome动画”卡顿”的办法

    为动画DOM元素添加CSS3样式-webkit-transform:transition3d(0,0,0)或-webkit-transform:translateZ(0);,这两个属性都会开启GPU硬 ...

  3. 开启SQL Server执行占用时间显示和逻辑读取次数显示

    两条命令 1:set statistics time on 这条命令会显示你编译这条语句和执行这条语句花多长时间 2.set statistics io on 这条命令会显示你逻辑读取了多少次数据库和 ...

  4. YARN 命令总结

    起因:YARN 使用capability schedule queue调度container,spark 的app卡死在YARN的队列里面无法出来,无奈请教大神时,可用[yarn applicatio ...

  5. 网页html结构搭建方法总结

    在div+css布局中,一般都这样来整体构架的: <div id="header"></div><div id="center"& ...

  6. 玩玩 Nginx 2-----给Nginx添加第三方模块(动态更新upstream)

          接上一篇,我们在初始化安装的时候添加了nginx_lua模块,然后了解到nginx不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来一起看看如何安装nginx第 ...

  7. [SinGuLaRiTy] 树形存储结构阶段性测试

    [SinGuLaRiTy-1011] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. G2019级信息奥赛专项训练 题目 程序名 时间 内存 ...

  8. Spring整合Struts2,Hibernate的xml方式

    作为一个学习中的码农,一直学习才是我们的常态,所以最近学习了SSH(Spring,Struts2,Hibernate)整合,数据库用的MySQL. 写了一个简单的例子,用的工具是IntelliJ Id ...

  9. 南京.NET线下活动后续—一对一技术交流

    4月1日星期六,发生了几件大事: 1.网民与老板花式斗图,庆祝愚人节. 2.国务院设立雄安新区,定为千年大计 3.纳龙科技的程序猿赴镇江斯诺物联科技进行一对一技术交流. 此次一对一交流活动是3月11日 ...

  10. es6编写reactjs事件处理函数绑定this三种方式

    第一种:官方推荐的: class LoginControl extends React.Component { constructor(props) { super(props); this.hand ...