Java基础(6):IO、File、创建目录

Java安装参考:

https://blog.csdn.net/Zachcc/article/details/94646514

Java基础(5):

https://blog.csdn.net/Zachcc/article/details/95257054

Java读写文件

一个流被定义为一个数据序列。输入流用于从源读取数据,输出流用于向目标写数据。

https://www.runoob.com/wp-content/uploads/2013/12/iostream2xx.png

接下来讲解下:FileInputStream 和 FileOutputStream:

FileInputStream

该流用于从文件读取数据,它的对象可以用关键字 new 来创建。有多种构造方法可用来创建对象。可以使用字符串类型的文件名来创建一个输入流对象来读取文件:

InputStream f = new FileInputStream("C:/java/hello");

也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件对象:

File f = new File("C:/java/hello"); InputStream out = new FileInputStream(f);

FileOutputStream

该类用来创建一个文件并向文件中写数据。如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。有两个构造方法可以用来创建 FileOutputStream 对象。使用字符串类型的文件名来创建一个输出流对象:

OutputStream f = new FileOutputStream("C:/java/hello"也可以使用一个文件对象来创建一个输出流来写文件。我们首先得使用File()方法来创建一个文件对象:

File f = new File("C:/java/hello");

OutputStream f = new FileOutputStream(f);

来看个例子:

import java.io.*;

public class fileStreamTest {

      public static void main(String args[]) {

try {

byte bWrite[] = { 11, 21, 3, 40, 5 };

OutputStream os = new FileOutputStream("test.txt");

for (int x = 0; x < bWrite.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/O

还有一些关于文件和I/O的类,我们也需要知道:File Class(类)FileReader Class(类)FileWriter Class(类)

Java中的目录

创建目录:File类中有两个方法可以用来创建文件夹:

  1. mkdir( )方法创建一个文件夹,成功则返回true,失败则返回false。失败表明File对象指定的路径已经存在,或者由于整个路径还不存在,该文件夹不能被创建。
  2. mkdirs()方法创建一个文件夹和它的所有父文件夹。

以下是个关于创建目录的代码

import java.io.File;

public class CreateDir {

public static void main(String args[ ]) {

String dirname = "/tmp/user/java/bin";

File d = new File(dirname);

 // 现在创建目录

d.mkdirs();

             }

}

编译并执行上面代码来创建目录 "/tmp/user/java/bin"。

注意:Java 在 UNIX 和 Windows 自动按约定分辨文件路径分隔符。如果你在 Windows 版本的 Java 中使用分隔符 (/) ,路径依然能够被正确解析。

读取目录

一个目录其实就是一个 File 对象,它包含其他文件和文件夹。如果创建一个 File 对象并且它是一个目录,那么调用 isDirectory() 方法会返回 true。可以通过调用该对象上的 list() 方法,来提取它包含的文件和文件夹的列表。

import java.io.File;

public class DirList {

 public static void main(String args[]) {

String dirname = "/tmp";

File f1 = new File(dirname);

if (f1.isDirectory()) {

System.out.println("目录 " + dirname);

String s[] = f1.list();

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

File f = new File(dirname + "/" + s[i]);

if (f.isDirectory()) {

System.out.println(s[i] + " 是一个目录");

} else {

System.out.println(s[i] + " 是一个文件");

}

 }

} else {

System.out.println(dirname + " 不是一个目录");

                           }

                  }

 }

删除目录或文件

删除文件可以使用 java.io.File.delete() 方法。以下代码会删除目录 /tmp/java/,需要注意的是当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。

import java.io.File;

public class DeleteFileDemo {

public static void main(String args[]) {

// 这里修改为自己的测试目录

File folder = new File("/tmp/java/");

deleteFolder(folder);

}

// 删除文件及目录

public static void deleteFolder(File folder) {

                           File[] files = folder.listFiles();

if (files != null) {

for (File f : files) {

if (f.isDirectory()) {

deleteFolder(f);

} else {

f.delete();

}

             }

      }

folder.delete();

}

}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值