一:

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. [IOI2018] werewolf 狼人

    [IOI2018] werewolf 狼人 IOI2018题解 (其实原题强制在线,要用主席树) 代码: 注意: 1.下标从0~n-1 2.kruskal重构树开始有n个节点,tot从n开始,++to ...

  2. CDN中,字体文件的跨域问题和解决

    @font-face是CSS3中的一个特性,可以把自己定义的Web字体嵌入到网页中,随着@font-face,越来越多的网页采用字体图标作为网页中的小图形. 比如Bootstrap就采用了Glyphi ...

  3. 虚拟机中liunx安装教程

    目标:在Linux服务器上部署Java开发的网站  工具 VirtualBox-4.3.8:下载后安装. linux系统镜像: Centos国内镜像文件下载地址: http://centos.ustc ...

  4. HDU 6153 扩展kmp

    A Secret Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 256000/256000 K (Java/Others)Total ...

  5. 弹指之间 -- Prerequisites

    CHAPTER 1 吉他的分类 Electric Guitar Classic Guitar Folk Guitar CHAPTER 2 吉他各部名称 CHAPTER 3 选购吉他 琴颈弯曲程度 木头 ...

  6. Pycharm使用详解

    Pycharm使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 古人云,工欲善其事,必先利其器.想要学好Python且拥有高效的开发效率,这个时候每个程序员都有自己的开发方式 ...

  7. 把iPad上的视频推送到大麦盒子去

    把iPad上的视频推送到大麦盒子去   最近因为升级家里的宽带,服务商送了一个大麦盒子给我.   大麦盒子,就是一个网络机顶盒,用它可以通过互联网收看电视剧.电影.电视节目.音乐等等.除了它自身带的一 ...

  8. 35个java代码性能优化总结

    前言 代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑 的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用 ...

  9. 流媒体技术学习笔记之(十四)FFmpeg进行笔记本摄像头+麦克风实现流媒体直播服务

    FFmpeg推送视频流,Nginx RTMP模块转发,VLC播放器播放,实现整个RTMP直播 查看本机电脑的设备 ffmpeg -list_devices true -f dshow -i dummy ...

  10. mybatis mapper接口开发dao层

    本文将探讨使用 mapper接口,以及 pojo 包装类进行 dao 层基本开发 mybatis dao 层开发只写 mapper 接口 其中需要 开发的接口实现一些开发规范 1. UserMappe ...