一,初识文件流

看到标题就知道接下来的所有操作对象都是面对文件进行的。那么问题来了。在java中目录是不是也属于文件呢?答案是yes。既然目录也属于文件,那么对于目录跟文件的区分就显现出来了。在接下来的操作中也包含了这部分的内容。方便于我们更好的区分对于文件以及目录分别应该采取什么样的对应方法。

另外我今天也是第一次接触java中的文件流,我把我自己的上课笔记以及小案例传上来,希望大家一起来进行探讨。

二,通过File类创建一个文件

1. 创建CreatNewFiles方法

注释:

(1)通过File类中的方法来对文件进行增删改查的操作。先new File类这个实体。

(2).exists()是File类中的一个方法,来判断文件是否存在

(3).createNewFile()为File类中的一个方法。来创建新文件。

package Test;

import java.io.File;
import java.io.IOException; /**
* 创建新文件
*
* @param string
* @throws IOException
*/
public class CreatNewFiles { public static void creatNewFile(String string) throws IOException {
File file = new File(string); if (file.exists()) // 判断文件是否存在
return; if (file.createNewFile()) // 创建新文件
System.out.println("文件创建成功!");
else {
System.out.println("文件创建失败!");
}
}
}

2. 测试类

注释:

(1)实例化CreatNewFiles这个类

(2)直接调用.creatNewFile方法()中指定创建路径以及创建文件的文件名

(3)创建出来的文件为空文件

package Test;

import java.io.IOException;

public class FileTest {

	public static void main(String[] args) throws IOException {

		CreatNewFiles creat = new CreatNewFiles();
creat.creatNewFile("C:/Users/IBM_ADMIN/Desktop/test.txt");
} }

结果:

三,通过File类删除一个文件

1. 创建deleteFile文件方法

注释:.delete()为删除一个文件

package Test;

import java.io.File;

public class DeleteFiles {

	public static void deleteFile(String string) {
File file = new File(string);
if (file.delete()) {
System.out.println("文件已经被删除!");
} else {
System.out.println("文件无法被删除!");
}
}
}

2. 测试类

package Test;

import java.io.IOException;

public class FileTest {

	public static void main(String[] args) throws IOException {

		DeleteFiles del = new DeleteFiles();
del.deleteFile("C:/Users/IBM_ADMIN/Desktop/test.txt");
} }

结果:

文件被删除!!

四,通过Properties类来对文件添加内容

对文件的编辑方法应该有很多,不过我目前只学了通过Properties类来对文件进行编写。因此这里只针对Properties类中的方法进行展开。

1. .setProperty为Properties类中的一个方法。Properties内部是一个HashMap,因此是以键值对的方式进行入力的。也就是说一般在使用Properties类来对文件进行编译的时候,通常是对于配置文件之类的文件进行编译时比较适用。注释:

(1)Properties prop = new Properties();为实例化Properties这个类

(2)prop.setProperty("UserName", "tony");通过键值对的方式进行文件内容的输入

(3)prop.store(new FileOutputStream("C:/Users/IBM_ADMIN/Desktop/test.txt"), "add key and value"); 通过.store方法以及new FileOutputStream方法连用来对文件进行导出。把入力的内容重写到output后的文件中。另外 Properties类中有很多方法,建议可以查看API,这里就不一一对其中的方法进行列举了。也可以对文件的属性进行查看输出等。

package Test;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties; public class FileTest { public static void main(String[] args) throws IOException { /*
* CreatNewFiles creat = new CreatNewFiles();
* creat.creatNewFile("C:/Users/IBM_ADMIN/Desktop/test.txt");
*/ Properties prop = new Properties();
// .setProperty是通过HashMap键值对的方式进行入力.
prop.setProperty("UserName", "tony");
prop.setProperty("UserPassword", "tony@123");
prop.setProperty("UserGroup", "Administrators"); System.out.println(prop);// 这里只是打印入力后的内容.但是并没有把内容输入到test.txt文本中. // 通过.store方法结合 new FileOutputStream来指定要输出的文件位置,后面为comments.可以理解为注释
prop.store(new FileOutputStream("C:/Users/IBM_ADMIN/Desktop/test.txt"),
"add key and value");
System.out.println(prop);
} }

五,通过Properties类来删除内容

注释:

(1)实例化Properties这个类

(2)实例化File这个类,并指定导入文件的绝对路径

(3).load(new FileInputStream(变量)) 通过.load以及 FileInputStream方法来加载文件中的内容。

(4).remove(“ key”).remove括号中跟的是载入文件键值对中的key.通过删除key的方式一并删除对应的value。

(5).clear() 是指清空文件中的所有内容

package Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Properties; public class FileTest { public static void main(String[] args) throws IOException { Properties prop = new Properties();
File result = new File("C:/Users/IBM_ADMIN/Desktop/test.txt"); // 通过实例化File类已及通过properties类中的.load方法加载文件 prop.load(new FileInputStream(result)); // FileInputStream()为加载方法
System.out.println(prop);
prop.remove("UserPassword"); // .remove()指定要删除的key,删除该key以及对应的value内容
System.out.println(prop);
prop.clear(); // .clear()是清空文件所有内容
System.out.println(prop);
}
}

结果:

第一行:.load()过来的文件初始内容

第二行:.remove()删除指定key后的结果

第三行:.clear() 后的文件内容

六,通过Properties类来显示文件属性

注释:

(1)实例化Properties,File这2个类。指定文件路径

(2)通过if语句先判断是否指定的为文件. (通过.isFile()方法)

(3)自定义一个showFileInfo()方法方便调用

(4)showFileInfo中的语句都是直接调用FIle类中的方法。(每个方法的具体注释请参考代码段注释)

(5)showFileinfo(file)直接调用自定义好的showFileInfo

package Test;

import java.io.File;
import java.util.Date;
import java.util.Properties; public class FileTest { public static void main(String[] args) { Properties prop = new Properties(); File file = new File("C:/Users/IBM_ADMIN/Desktop/test.txt"); // 判断指定内容是否为文件
if (file.isFile()) {
System.out.println(file + "是一个文件");
} else {
System.out.println("文件没有找到!");
}
System.out.println();
showFileInfo(file); } public static void showFileInfo(File file) {
System.out.println("文件名为:" + file.getName());
System.out.println("文件路经:" + file.getPath()); // 查找文件相对路经
// System.out.println(file.getAbsolutePath()); //查找文件绝对路经
System.out.println("文件所在目录为:" + file.getParent()); // 显示文件所属上级目录
System.out.println("文件最后修改时间:" + new Date(file.lastModified()));
System.out.println("文件大小:" + file.length());
System.out.println("是否可读:" + file.canRead());
System.out.println("是否可写:" + file.canWrite());
System.out.println("是否是隐藏文件:" + file.isHidden()); } }

结果:

C:\Users\IBM_ADMIN\Desktop\test.txt是一个文件

文件名为:test.txt
文件路经:C:\Users\IBM_ADMIN\Desktop\test.txt
文件所在目录为:C:\Users\IBM_ADMIN\Desktop
文件最后修改时间:Tue Feb 14 09:20:18 CST 2017
文件大小:115
是否可读:true
是否可写:true
是否是隐藏文件:false

以上是Properties于File类中比较常用的几种方法。当然不止仅仅有这些方法,更多的用法请查看相关的API,可以更好更灵活的对文件进行简易操作。

另外说了文件自然就会有文件夹也就是目录相关的用法。会在下一篇中提到。

谢谢大家的阅览。请多提意见,也可以多关注一下。谢谢。

【File】文件操作(初识文件操作一)的更多相关文章

  1. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  2. Unix/Linux环境C编程入门教程(40) 初识文件操作

     1.函数介绍 close(关闭文件) 相关函数 open,fcntl,shutdown,unlink,fclose 表头文件 #include<unistd.h> 定义函数 int ...

  3. C语言中file文件指针概念及其操作 (转载)

    文件 文件的基本概念 所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名.实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件. ...

  4. Java File文件操作 创建文件\目录,删除文件\目录

    Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> p ...

  5. 19-3-8Python中编码的进阶、文件操作初识、深浅copy

    编码的进阶 ASCII:英文字母,数字,特殊符号,——>  二进制的对应关系 Str: 1个字符——> 1个字节 Unicode:万国码:世界上所有的文字与二进制的对应关系 1个字符——& ...

  6. Unix/Linux环境C编程新手教程(40) 初识文件操作

     1.函数介绍 close(关闭文件) 相关函数 open,fcntl,shutdown.unlink,fclose 表头文件 #include<unistd.h> 定义函数 int ...

  7. Java中Io流操作-File类的常用操作-创建文件,创建文件夹

    package com.hxzy.IOSer; import java.io.File;import java.io.IOException; public class Demo03 { public ...

  8. UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)

    前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...

  9. 文件IO操作..修改文件的只读属性

    文件的IO操作..很多同行的IO工具类都是直接写..但是如果文件有只读属性的话..则会写入失败..所以附加了一个只读的判断和修改.. 代码如下: /// <summary> /// 创建文 ...

随机推荐

  1. ruby firefox23报错:waiting for evaluate.js load failed

    解决方法 gem install selenium-webdriver -v='2.34.0'

  2. P1681 最大正方形 Iand II

    题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m ...

  3. ElasticSearch 处理自然语言流程

    ES处理人类语言 ElasticSearch提供了很多的语言分析器,这些分析器承担以下四种角色: 文本拆分为单词 The quick brown foxes → [ The, quick, brown ...

  4. 用gethub下载ardupilot的最新源码

    1进入gethub的官方网站https://github.com/作者:恒久力行 QQ:624668529    在搜索框内输入ardupilot并点击搜索点回车       2会看到很多工程,选择那 ...

  5. js如何获取上个月第一天和最后一天

    var nowdays = new Date(); var year = nowdays.getFullYear(); var month = nowdays.getMonth(); if(month ...

  6. Android ImageView的几种对图片的缩放处理 解决imageview放大图片后失真问题解决办法

    我的解决办法: 1 首先设置android:layout_width=”wrap_content”和android:layout_height=”wrap_content”,否则你按比例缩放后的图片放 ...

  7. Android 超简单的拖动按钮 悬浮按钮 吸附按钮

    第一种    第二种    第一种实现方法 xml布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  8. 【Oracle】曾经的Oracle学习笔记(8-15)ER图,三大范式,数据库字典,视图,索引,序列

    一.数据库建模 二.建表 三.数据库字典 四.DML语句 五.视图 六.索引 七.序列 八.DDL语句 Lesson 8 Overview of Data Modeling and Database ...

  9. hihocoder 1080 线段树(区间更新)

    题目链接:http://hihocoder.com/problemset/problem/1080 , 两种操作的线段树(区间更新). 这道题前一段时间一直卡着我,当时也是基础不扎实做不出来,今天又想 ...

  10. 为Visual Studio 2012添加MSDN离线帮助

    之前有网络的情况下,一直使用的都是在线的,最近又有笔记本上面有时使用时没有网络,所以就想使用下离线的MSDN包.可是找了半天,发现都是需要再次进行下载的.VS2012使用的帮助程序是HelpViewe ...