java-IO操作总结

时间:2024.3.23

I/O操作总结

常用的文件操作类关系图

//文件操作类

package com.yupeng.iotest;

import java.io.File;

import java.io.IOException;

import org.junit.Test;

public class FileTest {

         @Test

         public void test(){

                  

                   File f=new File("D:/Accp/yupeng/aa");

                   try {

                            //创建一个空文件,如果有此文件,不创建

                            if(f.createNewFile()){

                                     System.out.println("创建一个空文件");

                            }

                            //创建文件夹(不包括父文件),但是文件不能被创建成文件过

                            if(f.mkdir()){

                                     System.out.println("创建一个文件夹!");

                            }

                            //创建一个文件夹(包括父文件夹)

                            if(f.mkdirs()){

                                     System.out.println("创建一个包括父文件夹的文件夹!");

                            }

                            //删除一个空文件或文件夹

                            f.delete();

                            //判断文件或文件夹是否存在

                            if(f.exists()){

                                     System.out.println("文件存在!");

                            }

                            //判断文件是否是文件夹

                            if(f.isDirectory()){

                                     System.out.println("文件是一个文件夹!");

                            }

                            //判断文件是否是一个标准文件

                            if(f.isFile()){

                                     System.out.println("这是一个标准文件");

                            }

                            //返回文件大小,返回文件实际占了几个字节,结果为0

                            System.out.println(f.length());

                            //返回此抽象路径名的绝对路径名字的字符串,结果为:D:\Accp\yupeng.txt

                            System.out.println(f.getAbsolutePath());

                            //返回文件名,结果为:yupeng.txt

                            System.out.println(f.getName());

                            //返回父路径,结果为:D:\Accp

                            System.out.println(f.getParent());

                            //返回完整路径,结果为:D:\Accp\yupeng.txt

                            System.out.println(f.getPath());

                            //返回此文件夹下的所有文件,如果不是文件夹则返回空!

                            File[] files=f.listFiles();

                            if(files!=null){

                                     for(File ff:files){

                                                        System.out.println(ff.getName());

                                     }

                            }

                           

                   } catch (Exception e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

         }

}

//字节流操纵数据(字节文件:一般文件都可以成为字节文件,例如:文档、图片、音乐……)

package com.yupeng.iotest;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import org.junit.Test;

public class ByteStreamTest {

         @Test

         public void inByteStreamTest(){

                  

                   //字节文件输入流

                   InputStream fis=null;

                   try {

                            fis=new FileInputStream("D:/Accp/yupeng.txt");

                            //作为内存的缓冲字节流池

                            byte[] bytes=new byte[1024];

                            //记录实际读取的字节数

                            int n=0;

                            //每1024字节读取数据

                            while((n=fis.read(bytes)) != -1){

                                     String s=new String(bytes,0,n);

                                     System.out.println(s);

                            }

                   } catch (Exception e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }finally{

                            if(fis!=null){

                                     try {

                                               //关闭字节输入流

                                               fis.close();

                                     } catch (IOException e) {

                                               // TODO Auto-generated catch block

                                               e.printStackTrace();

                                     }

                            }

                   }

         }

        

         @Test

         public void outByteStreamTest(){

                  

                   //字符文件输出流

                   OutputStream fos=null;

                   try {

                            fos=new FileOutputStream("D:/Accp/yupeng.txt");

                            //要写到文件中的字节数据

                            String s="于鹏yupeng123456";

                            //注意:它会覆盖原有文件中的数据写入

                            fos.write(s.getBytes());

                           

                   } catch (Exception e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }finally{

                            if(fos!=null){

                                     try {

                                               fos.close();

                                     } catch (IOException e) {

                                               // TODO Auto-generated catch block

                                               e.printStackTrace();

                                     }

                            }

                   }

         }

}

//字符流操纵数据(只能是字符类型数据)

package com.yupeng.iotest;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.Reader;

import java.io.Writer;

import org.junit.Test;

public class CharStreamTest {

        

         @Test

         public void inAndOutCharStreamTest(){

                  

                   //字符文件输入流

                   Reader fr=null;

                   //字符文件输出流

                   Writer fw=null;

                  

                   try {

                            fr=new FileReader("D:/Accp/yupeng.txt");

                            fw=new FileWriter("D:/Accp/new.txt");

                            //1024个字符文件缓冲池,大小:2k

                            char[] chars=new char[1024];

                            //记录每次实际读取的字符数

                            int n=0;

                            //读取文件

                            while((n=fr.read(chars))!=-1){

                                     String s=new String(chars,0,n);

                                     System.out.println("字符为"+s);

                                     System.out.println("数字:"+n);

                                     //写入到新文件

                                     fw.write(chars,0,n);

                            }

                   } catch (FileNotFoundException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   } catch (Exception e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }finally{

                            try {

                                     //关闭字符流文件

                                     if(fr!=null){

                                               fr.close();

                                     }

                                     if(fw!=null){

                                               fw.close();

                                     }

                            } catch (IOException e) {

                                     // TODO Auto-generated catch block

                                     e.printStackTrace();

                            }

                   }

         }

}

//字符串形式传输数据(比字符流要快,文件类型只能为字符型数据)

package com.yupeng.iotest;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.Reader;

import java.io.Writer;

import org.junit.Test;

public class StringStreamTest {

         @Test

         public void inAndOutStringStreamTest(){

                  

                   Reader fr=null;

                   Writer fw=null;

                   //带缓冲的字符流操作数据类

                   BufferedReader br=null;

                   BufferedWriter bw=null;

                  

                   try {

                            fr=new FileReader("D:/Accp/yupeng.txt");

                            fw=new FileWriter("D:/Accp/new.txt");

                            //因为BuffedReader、BufferedWriter的构造函数中参数只能 是Reader、Writer类型的数据

                            br=new BufferedReader(fr);

                            bw=new BufferedWriter(fw);

                            String s="";

                            //readLine()读取不带换行符的一整行数据,当读到不包含任何行的终止符时返回null

                            while((s=br.readLine())!=null){

                                     s=s+"\r\n";

                                     bw.write(s);

                            }

                           

                   } catch (FileNotFoundException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   } catch (IOException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }finally{

                            try {

                                     bw.close();

                                     br.close();

                                     fr.close();

                                     fw.close();

                            } catch (IOException e) {

                                     // TODO Auto-generated catch block

                                     e.printStackTrace();

                            }

                           

                   }

         }

        

}


第二篇:java IO 文件操作


java IO 文件操作

/*

java 文件操作

java中文件操作的类是 File类 可以实现对文件的创建删除 修改等

File类 在 java.io包中

下面是 通过 java.io.File类实现对文件操作

File类没有提供对文件的读写方法

*/

import java.io.*; //导入io包

class Test

{

public static void main(String []args) throws Exception //直接吧所有异常抛出给 JVM虚拟机

{

//一个File类对象代表一个文件或者目录

//File.seperator 表示 当前盘符与系统相关的抽象目录 或者一个\ /

File dir=new File(File.separator +"newDir"); //在当前路径下创建一个目录 dir.mkdir(); //创建目录

File file1=new File(dir,"1.txt"); //在 newDir目录下创建1.txt这是 构造函数的重载形式 dir是父目录

file1.createNewFile() ;//在dir目录下创建一个新文件

File file2=new File("d:\\2.txt"); //直接用绝对路径创建

file2.createNewFile(); //创建文件

/*在运行的时候生成文件在推出的时候删除文件*/

/*File fRun=new File("d:\\fRun.txt");

fRun.createNewFile() ; //create

fRun.deleteOnExit() ;//这个文件会在程序推出的时候删除掉

Thread.sleep(3000);

*/

/* java创建临时文件 并且删除临时文件 */

int count =0;

while(count++<10)

{

File ftemp=File.createTempFile("xiaowei",".tmp") ; //创建临时文件 File类静态方法

ftemp.deleteOnExit();//在退出程序的时候删除临时文件

//临时文件目录在 系统变量的temp

}

/*

查看一个目录下所有文件个目录 并且进行过滤

*/

File fileter=new File(File.separator); //代表当前目录 我是D盘

String []name=fileter.list();//获得当前目录下的多有文件目录名字

System.out.println("未加滤镜");

for(int i=0;i<name.length;i++)

System.out.println(name[i]);

System.out.println("\n\n加滤后");

String []fname=fileter.list(new FilenameFilter() //这里传递的是一个匿名的内部类因为接口不能直接实例对象

{

public boolean accept(File dir, String name)

{

return name.indexOf("txt")!=-1;//不是txt返回 false 是txt返回 true }

}

) ;//通过滤镜获得文件目录名 传递一个 FilenameFilter接口实现对象 这里是匿名

for(int i=0;i<fname.length;i++)

System.out.println(fname[i]);

} }

更多相关推荐:
Java总结

Java总结Java语言不允许程序员直接控制内存空间的使用。内存空间的分配和回收是有jre负责在后台自动进行,尤其是无用内存空间的回收操作。垃圾回收器不可以被强制执行,但程序员可以通过调用system.gc()…

Java总结

Java总结一.1.Java程序的执行Java先由.Java文件编译生成.class文件,再由.class文件通过不同操作系统的虚拟机进行解释从而执行程序结果。编译命令:javac+文件名.Java解释命令:j…

JAVA总结

1.构造函数:是一种特殊的函数,没有返回值。构造函数的名称与类的名称相同。一般用于初始化成员变量的值。使用super关键字来调用父类的构造函数。2.方法的重载:法名相同但参数的个数或类型不同,一般情况下是在一个…

二级JAVA总结

对长度为n的线性表进行冒泡排序,最坏情况先需要比较的次数为log2n。对长度为n的线性表进行顺序排序,最坏情况先需要比较的次数为n。高内聚低耦合有利于模块的独立性。二叉树属于非线性结构。算法具有可行性、确定性、…

java总结

个人介绍:1.名字可以不用介绍;2.×××大学,学了什么(大致介绍)3.如何进入第一家公司;4.工作年限;5.大致讲下在公司所作的项目;技术方面:1.抽象类与接口的区别;2.版本控制(CVS,VSS)3.常用的…

JAVA总结

在这忙忙碌碌的这段时间里,经过老师的辅导,迅速的将一点没有学的JAVA基础搞定了!有了基础学习还是好,万事开头难这句话说的太对了,学计算机语言我觉得记忆好的方法就是多打代码,课前预习,课堂上认真听讲,把现学的方…

java总结

1.读入数据用Scanner2.向文件写数据用PrintWriter3.this.dispose();这个方法可以真正在内存中移除JFrame从类java.awt.Window继承的方法:dispose()pu…

毕向东java基础总结(完整版)

克己宽容仁德博学厚黑坚毅稳重Java基础知识总结168克己宽容仁德博学厚黑坚毅稳重Java基础知识总结超级经典写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4...

java面向对象总结

面向对象面向对象是一种思想能让复杂的问题简单化让我们角色从执行者变成指挥者不要知道过程只要知道结果一切皆对象描述一个事物其实就是在描述事物的属性和行为对象的特点在于封装数据数据包含着属性和行为我们用类来描述一个...

Java关键字总结

Java关键字总结21abstractJava关键字abstract关键字可以修改类或方法abstract类可以扩展增加子类但不能直接实例化abstract方法不在声明它的类中实现但必须在某个子类中重写示例pu...

java经典总结(超级经典)

java经典总结超级经典写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有...

java基础总结(上)

配置java环境变量JAVAHOME配置JDK的目录CLASSPATH指定到哪里去找运行时需要用到的类代码字节码PATH指定可执行程序的位置LINUX系统在quotbashprofilequot下的环境变量设置...

java总结(59篇)