1. 编程学习网 > 编程教程 > java教程 > 第二十三篇 Java流(File、I/O)

第二十三篇 Java流(File、I/O)

第16章-Java流(File、I/O)
前面一节我们学习了Java流的Stream,这节我们来学学Java流的File与I/O。
读写文件:
下面是输入输出流的类层次图

接下来要讨论的是两个重要的流:FileImputStream和FileOutputStream
FileInputStream流用于从而文件读取数据,他的对象可以用关键字new来创建。
可以使用字符串类型的文件名来创建一个输入对象流来对文件进行读取:
InputStream f = new FileInputStream("C:/java/hello");
也可使用文件对象来创建一个输入流对象来读取文件:
File f = new File("C:/java/hello");
InputStream out = new FileInputStream(f);

创建了InputStream对象,就可以使用下面的方法来实现或对其流进行他的流操作。

除了InputStream外,还有一些其它的输入流。
 
 
FileOutputStream:
该类用来创建一个文件并向文件中写数据。
如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。
有两个构造方法可以用来创建 FileOutputStream 对象。
使用字符串类型的文件名来创建一个输出流对象:
OutputStream f = new FileOutputStream("C:/java/hello")
当然你也可以使用一个文件对象来创建一个输出流来写文件。首先我们要用File()方法来创建一个文件对象:
File f = new File("C:/java/hello");
OutputStream f = new FileOutputStream(f);

在创建完了对象后我们就可以使用下面的方法来进行写入流或其它流的一个操作。

除了OutputStream外,还有一些其他的输出流。
 
下面是一个演示的实例:
import java.io.*;
 
public class fileStreamTest {
    public static void main(String args[]) {
        try {
            byte aWrite[] = { 12, 21, 32, 40, 15 };
            OutputStream os = new FileOutputStream("test.txt");
            for (int x = 0; x < aWrite.length; x++) {
                os.write(bWrite[x]); // writes the bytes
            }
            os.close();
 
            InputStream is = new FileInputStream("test.txt");
            int size = is.available();
 
            for (int i = 0; i < size; i++) {
                System.out.print((char) is.read() + "  ");
            }
            is.close();
        } catch (IOException e) {
            System.out.print("Exception");
        }
    }
}

 上面的例子中,我们首先创建了test.txt文件并以二进制的形式将数字写进该文件中并向控制台进行输出。
 
文件与I/0
关于I/O类我们也需要知道一下几个类的使用方法:
File Class
FileReader Class
FileWriter Class

关于着写类的使用我希望同门能够自己找资料进行查阅。、
 
Java中的目录
 
使用File类创建文件夹有mkdir()和mkdirs()两个方法,mkdir()方法创建文件夹成功返回true,失败返回false。假若失败则表示file对象制定的路径是已经存在的,或者路径不存在导致的文件夹不能创建。
Mkdirs()方法则是创建一个文件夹和它所有父文件夹。
import java.io.File;
 
public class Files{
    public static void main(String args[]) {
        String dirname = "Users/dugul/Desktop/Java基础教程";
        File one = new File(dirname);
        //创建目录
 
        one.mkdirs();
    }
}

在Java中每个目录都是一个对象,它包含了其他文件夹和文件,若一个File对象是目录,则调用的方法会返回true,通过调用该对象上的list()方法,来提取它包含的文件和文件夹的列表。
import java.io.File;
 
public class Files{
    public static void main(String args[]) {
        String dirname = "/java";
        File one = new File(dirname);
        if (one.isDirectory()) {
            System.out.println("目录 " + dirname);
            String str[] = one.list();
            for (int i = 0; i < str.length; i++) {
                File fle = new File(dirname + "/" + str[i]);
                if (fle.isDirectory()) {
                    System.out.println(str[i] + " 是一个目录");
                } else {
                    System.out.println(str[i] + " 是一个文件");
                }
            }
        } else {
            System.out.println(dirname + " 不是一个目录");
        }
    }
}

删除目录使用delete()方法,这里需要注意一下,若我们直接删除目录时,必须要确定这个目录下没有其它的文件夹才能删除,不然的话将会删除失败。
import java.io.File;
 
public class Files{
    public static void main(String[] args){
        File file=new File("TEXT.txt");
        
        if(file.exists()) {
            file.delete();
            System.out.println("已删除文件");    
        }
        else {
            System.out.println("该文件不存在");
        }
    }
}


本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/java/465.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休