一:

1.API

  

2.构造函数的程序

  注意这集中构造函数的特点。

  同时,字段separator的使用。

 import java.io.File;

 public class Test101 {
public static void main(String[] args) {
//f1
File f1=new File("a.txt");
//f2
File f2=new File("e:\\ty","b.txt");
//f3
File d=new File("e:\\tyty");
File f3=new File(d,"c.txt");
//separator
File f4=new File("e:"+File.separator+"yu"+File.separator+"d.txt");
//
System.out.println("f1="+f1);
System.out.println("f2="+f2);
System.out.println("f3="+f3);
System.out.println("f4="+f4);
}
}

3.结果

  

二:增删改查

1.常见的方法

  1,创建。
    boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。
    和输出流不一样,输出流对象一建立创建文件。而且文件已经存在,会覆盖。

    boolean mkdir():创建文件夹。
    boolean mkdirs():创建多级文件夹。

  2,删除。
    boolean delete():删除失败返回false。如果文件正在被使用,则删除不了返回falsel。
    void deleteOnExit();在程序退出时删除指定文件。

  3,判断。
    boolean exists() :文件是否存在.
    isFile():
    isDirectory();
    isHidden();
    isAbsolute();

  4,获取信息。
    getName():
    getPath():
    getParent():

    getAbsolutePath()
    long lastModified()
    long length()

2.程序

 import java.io.File;
import java.io.IOException; import javax.swing.plaf.synth.SynthSeparatorUI;
/**
* 文件的创建,删除,判断,获取
* @author Administrator
*
*/
public class Test102 {
public static void main(String[] args) throws IOException {
getMethod();
}
//createNewFile,mkdir,mkdirs,isDirectory,isFile,isAbsolute,exists
public static void mkMethod() throws IOException{
File f=new File("a.txt");
//System.out.println(f.createNewFile());
System.out.println(f.exists());
System.out.println(f.canExecute()+"...");
System.out.println(f.mkdir()); //true
System.out.println(f.isDirectory()); //true
System.out.println(f.isFile()); //false
System.out.println(f.isAbsolute());
}
//delete
public static void deMethod() throws IOException{
File f=new File("a.txt");
System.out.println(f.delete());
}
//getPath,getAbsolutePath,getParent,getName
public static void getMethod() throws IOException{
File f=new File("b.txt");
System.out.println(f.getPath());
System.out.println(f.getAbsolutePath());
System.out.println(f.getParent());
System.out.println(f.getName());
}
}

3.renameTo的程序

 import java.io.File;

 public class Test103 {
/**
* reNameTo
* 相当于剪切复制
*/
public static void main(String[] args) {
File f1=new File("a.txt");
File f2=new File("b.txt");
System.out.println(f1.renameTo(f2));
}
}

三:列表

1.罗列全部的列表

  注意的是list与listFile的区别

 import java.io.File;
/**
* list与listFile的区别
* @author Administrator
*
*/
public class Test104 {
public static void main(String[] args) {
//listFileMethod();
listMethod();
}
public static void listFileMethod(){
File f=new File("E:\\Summary6\\demo1");
File[] dir=f.listFiles();
for(File file : dir){
System.out.println(file.getName()+"..."+file.length());
}
}
public static void listMethod(){
File f=new File("E:\\Summary6\\demo1");
String[] str=f.list();
for(String s : str){
System.out.println(s);
}
}
}

2.过滤需要的文件夹

  注意:留下的是经过过滤条件筛选后的文件

 import java.io.File;
import java.io.FilenameFilter; public class Test105 { public static void main(String[] args) {
filterMethod();
}
public static void filterMethod(){
File dir=new File("e:\\");
String[] arr=dir.list(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) { return name.endsWith(".rrr");
}
});
for(String name:arr){
System.out.println(name);
}
}
}

3.listRoot:打印盘符

 import java.io.File;

 public class Test106 {
/**
* listRoot:打印盘符
* @param args
*/
public static void main(String[] args) {
File[] f=File.listRoots();
for(File str : f){
System.out.println(str);
}
}
}

4.效果

  

5.循环打印

 import java.io.File;

 /**
* 循环打印文件夹下的文件,以及下一层的文件夹中的文件
*/
public class Test107 {
public static void main(String[] args) {
showMethod();
}
public static void showMethod(){
File dir=new File("E:\\gitFile\\gs-rest-service");
loopMethod(dir,0);
}
public static void loopMethod(File dir,int level){
System.out.println(getLevel(level)+dir.getName());
level++;
File[] files = dir.listFiles();
for(int x=0; x<files.length; x++)
{
if(files[x].isDirectory())
loopMethod(files[x],level);
else
System.out.println(getLevel(level)+files[x]);
}
}
public static String getLevel(int level){
StringBuilder sb = new StringBuilder();
sb.append("| ");
for(int x=0; x<level; x++)
{
sb.insert(0,"| ");
}
return sb.toString();
}
}

6.效果

  

四:打印流

1.介绍

  打印流主要包括字节打印流与字符打印流

  相对而言字符打印流更加常用。

2.字节打印流:
  PrintStream
  构造函数可以接收的参数类型:
    1,file对象。File
    2,字符串路径。String
    3,字节输出流。OutputStream

3.字符打印流:
  PrintWriter
  构造函数可以接收的参数类型:
    1,file对象。File
    2,字符串路径。String
    3,字节输出流。OutputStream
    4,字符输出流,Writer。

4.程序

 import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter; /**
* 关于printWriter的使用
*/
public class Test108 { public static void main(String[] args) throws IOException {
BufferedReader bufr=new BufferedReader(
new InputStreamReader(System.in));
PrintWriter out=new PrintWriter(new FileWriter("acb.txt"),true);
String line=null;
while((line=bufr.readLine())!=null){
if(line.equals("over"))
break;
out.println(line);
}
bufr.close();
out.close();
} }

五:properties特性

1.介绍

  Properties是hashtable的子类。
  也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。
  是集合中和IO技术相结合的集合容器。
  该对象的特点:可以用于键值对形式的配置文件。
  那么在加载数据时,需要数据有固定格式:键=值。

2.设置与获取

 import java.util.Properties;
import java.util.Set;
public class Test109 {
public static void main(String[] args) {
Properties pro=new Properties();
//set
pro.setProperty("zhangsan", "89");
pro.setProperty("lisi", "77");
pro.setProperty("wangwu","90");
//get
System.out.println(pro.getProperty("zhangsan"));
//特有的获取方法
Set<String> value=pro.stringPropertyNames();
for(String name : value){
System.out.println(name+"="+pro.getProperty(name));
}
}
}

3.运行效果

  

4.将文件中的值存放到properties集合中

 import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class Test110 {
public static void main(String[] args) throws IOException {
BufferedReader bufr=new BufferedReader(new FileReader("info.txt"));
Properties pro=new Properties();
String line=null;
while((line=bufr.readLine())!=null){
String[] str=line.split("=");
pro.setProperty(str[0], str[1]);
}
bufr.close();
System.out.println(pro);
}
}

5.运行结果

  

六:文件的切割与合并

1.文件的合并

 import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
public class Test111 {
public static void main(String[] args) throws IOException {
Vector<FileInputStream> vector=new Vector<FileInputStream>();
vector.add(new FileInputStream("1.txt"));
vector.add(new FileInputStream("2.txt"));
vector.add(new FileInputStream("3.txt"));
Enumeration<FileInputStream> en=vector.elements();
SequenceInputStream ss=new SequenceInputStream(en);
FileOutputStream fs=new FileOutputStream("4.txt");
int len=0;
byte[] buf=new byte[1024];
while((len=ss.read(buf))!=-1){
fs.write(buf, 0, len);
}
ss.close();
fs.close();
}
}

2.运行效果

  

3.分割

 import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class Test112 {
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream("u.jpg");
FileOutputStream fos = null;
byte[] buf = new byte[1024];
int len = 0;
int count = 1;
while((len=fis.read(buf))!=-1)
{
fos = new FileOutputStream("part\\"+(count++)+".part");
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
}

4.运行结果

  

5.再进行合并

 import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator; public class Test113 {
public static void main(String[] args) throws IOException {
merge(); }
public static void merge()throws IOException
{
//将ArrayList转换成Enumeration
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
for(int x=1; x<=21; x++)
{
al.add(new FileInputStream("part\\"+x+".part"));
}
//use final ,because anonymous function
final Iterator<FileInputStream> it = al.iterator();
Enumeration<FileInputStream> en = new Enumeration<FileInputStream>()
{
public boolean hasMoreElements()
{
return it.hasNext();
}
public FileInputStream nextElement()
{
return it.next();
}
}; SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("i.jpg");
byte[] buf = new byte[1024];
int len = 0;
while((len=sis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
fos.close();
sis.close();
} }

IO知识点整理(文件File类的使用)的更多相关文章

  1. JAVA IO分析一:File类、字节流、字符流、字节字符转换流

    因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...

  2. Java基础-IO流对象之File类

    Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下 ...

  3. 2017.12.20 Java中的 IO/XML学习总结 File类详细

    IO / XML 一.File类 1.定义/概念 Java是面向对象的语言,要想把数据存到文件中,就必须要有一个对象表示这个文件.File类的作用就是代表一个特定的文件或目录,并提供了若干方法对这些文 ...

  4. Java基础(二十五)Java IO(2)文件File类

    File类是一个与流无关的类.File类的对象可以获取文件及其文件所在的目录.文件的长度等信息. 1.File对象的常用构造方法. (1)File(String pathname) File file ...

  5. Java IO流中的File类学习总结

    一.File类概述 File类位于java.io包中,是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类有多种重载的构造方法.File类保存文件或目录的各种 ...

  6. Java文件File类学习总结

    java.io.File类 代表文件和目录,在开发中,读取文件.生成文件.删除文件.修改文件的属性都会用到该类. 常见构造方法: public File(String pathName){} 以pat ...

  7. IO学习一(File类)

    File类 1.凡是与输入.输出相关的类.接口都定义在java.io包下 2.File有构造器来创建对象,此对象对应着一个文件或文件目录 支持文件类型:.txt .avi .doc .jpg .ppt ...

  8. java基础文件,File类

    此文参考自"Java SE程序设计" 编著: 青岛东合信息技术有限公司 算是做笔记,以后想看可以翻阅,顺便分享出来大家可以参照.如有侵权,请联系本人删除 文件 文件是相关记录或放在 ...

  9. Java 基础(三)| IO流之使用 File 类的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...

  10. IO流学习之File类

    File类 Java文件类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等. File对象代表磁盘中实际存在的文件和目录.就是把文件和目录转换成对象,读取到内 ...

随机推荐

  1. bzoj5164: 餐厅计划问题(三分+贪心)

    网络流经典题里餐巾计划的加强版...天数变成了$10^5$,那就不能用费用流做了... 考虑费用流的时候,单位费用随流量的增加而减少,也就是说费用其实是个单峰(下凸)函数. 那么可以三分要买的餐巾个数 ...

  2. [Coderforces600E] Lomsat gelral

    大意是每个点有一个颜色,询问以每个点为根的子树中出现次数最多的颜色是谁,如果有多个输出编号和. 这个东西用数据结构是不太好做的,考虑优化暴力. 首先最裸的的暴力就是在dfs序上跑莫队,但因为是树的结构 ...

  3. (转)Maven学习总结(八)——使用Maven构建多模块项目

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(八)——使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为doma ...

  4. 分布式系统登录功能拦截器的实现以及cookie的共享问题(利用cookie实现session在分布式系统的共享)

    当我们的网站采用分布式部署系统时,每个子系统拥有自己独立的session,如果不实现session共享,当用户切换系统访问的时候,会不停的提示登录,这对于用户体验是非常不好的.因此对于多个子系统的的访 ...

  5. list对象指针与指针类型list

    #include <string> #include <cctype> #include <algorithm> #include <iostream> ...

  6. java桌面应用开发可视化工具windowbuilder详细使用方法

    http://blog.csdn.net/qq_28859405/article/details/52562131

  7. Python 基础数据类型之tuplu

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 1.元组的定义 tuple1 = ("hello", "world&qu ...

  8. TCP和IP的三次握手和第四次挥手

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确 ...

  9. 网络基础知识(一)wireshark 三次握手实践

    wireshark 三次握手简介 192.168.18.120 IP地址为我的本机虚拟机IP地址 过滤设置:ip.addr == 192.168.18.120 (ip.addr == 192.168. ...

  10. dedecms织梦首页判断,添加不同标题

    <title> {dede:field.title/} {dede:field name='typeid' runphp="yes"}(@me==0)? @me=&qu ...