Java基础知识之I/O流和File类文件操作方法

发布时间:2022-04-29 18:29:24 作者:iii
来源:亿速云 阅读:235

Java基础知识之I/O流和File类文件操作方法

1. 概述

在Java编程中,I/O流(输入/输出流)和File类是处理文件和数据流的核心工具。I/O流用于在程序和外部数据源(如文件、网络连接等)之间传输数据,而File类则提供了对文件和目录的操作方法。本文将详细介绍Java中的I/O流和File类的使用方法,帮助读者掌握文件操作的基本技能。

2. I/O流的基本概念

2.1 什么是I/O流

I/O流是Java中用于处理输入和输出的抽象概念。流可以看作是一个连续的数据序列,数据可以从一个源流向一个目的地。在Java中,流分为输入流和输出流:

2.2 流的分类

Java中的流可以分为两大类:字节流和字符流。

2.3 常用的I/O流类

Java提供了丰富的I/O流类,常用的包括:

3. File类的基本操作

3.1 File类的概述

File类是Java中用于表示文件和目录路径名的抽象表示。通过File类,我们可以创建、删除、重命名文件和目录,以及查询文件和目录的属性。

3.2 创建File对象

要使用File类,首先需要创建一个File对象。File对象可以通过文件路径名或父目录和子路径名来创建。

File file1 = new File("example.txt"); // 通过文件路径名创建
File file2 = new File("/path/to/directory", "example.txt"); // 通过父目录和子路径名创建

3.3 文件和目录的创建与删除

  File file = new File("example.txt");
  if (file.createNewFile()) {
      System.out.println("文件创建成功");
  } else {
      System.out.println("文件已存在");
  }
  File dir = new File("/path/to/directory");
  if (dir.mkdirs()) {
      System.out.println("目录创建成功");
  } else {
      System.out.println("目录已存在");
  }
  File file = new File("example.txt");
  if (file.delete()) {
      System.out.println("文件删除成功");
  } else {
      System.out.println("文件删除失败");
  }

3.4 文件和目录的查询

  File file = new File("example.txt");
  if (file.exists()) {
      System.out.println("文件存在");
  } else {
      System.out.println("文件不存在");
  }
  File file = new File("example.txt");
  if (file.isFile()) {
      System.out.println("这是一个文件");
  } else if (file.isDirectory()) {
      System.out.println("这是一个目录");
  }
  File file = new File("example.txt");
  System.out.println("文件名: " + file.getName());
  System.out.println("文件路径: " + file.getPath());
  System.out.println("文件绝对路径: " + file.getAbsolutePath());
  File file = new File("example.txt");
  System.out.println("文件大小: " + file.length() + " 字节");
  File dir = new File("/path/to/directory");
  String[] files = dir.list();
  for (String file : files) {
      System.out.println(file);
  }

4. 字节流的使用

4.1 FileInputStream和FileOutputStream

FileInputStreamFileOutputStream是用于文件字节输入和输出的基本类。它们可以读取和写入文件的字节数据。

  FileInputStream fis = new FileInputStream("example.txt");
  int data;
  while ((data = fis.read()) != -1) {
      System.out.print((char) data);
  }
  fis.close();
  FileOutputStream fos = new FileOutputStream("example.txt");
  String text = "Hello, World!";
  fos.write(text.getBytes());
  fos.close();

4.2 BufferedInputStream和BufferedOutputStream

BufferedInputStreamBufferedOutputStream是带缓冲区的字节流,可以提高读写效率。

  FileInputStream fis = new FileInputStream("example.txt");
  BufferedInputStream bis = new BufferedInputStream(fis);
  int data;
  while ((data = bis.read()) != -1) {
      System.out.print((char) data);
  }
  bis.close();
  FileOutputStream fos = new FileOutputStream("example.txt");
  BufferedOutputStream bos = new BufferedOutputStream(fos);
  String text = "Hello, World!";
  bos.write(text.getBytes());
  bos.close();

5. 字符流的使用

5.1 FileReader和FileWriter

FileReaderFileWriter是用于文件字符输入和输出的基本类。它们可以读取和写入文件的字符数据。

  FileReader fr = new FileReader("example.txt");
  int data;
  while ((data = fr.read()) != -1) {
      System.out.print((char) data);
  }
  fr.close();
  FileWriter fw = new FileWriter("example.txt");
  String text = "Hello, World!";
  fw.write(text);
  fw.close();

5.2 BufferedReader和BufferedWriter

BufferedReaderBufferedWriter是带缓冲区的字符流,可以提高读写效率。

  FileReader fr = new FileReader("example.txt");
  BufferedReader br = new BufferedReader(fr);
  String line;
  while ((line = br.readLine()) != null) {
      System.out.println(line);
  }
  br.close();
  FileWriter fw = new FileWriter("example.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  String text = "Hello, World!";
  bw.write(text);
  bw.close();

6. 数据流的使用

6.1 DataInputStream和DataOutputStream

DataInputStreamDataOutputStream是用于读写基本数据类型和字符串的流。

  FileOutputStream fos = new FileOutputStream("data.txt");
  DataOutputStream dos = new DataOutputStream(fos);
  dos.writeInt(123);
  dos.writeDouble(123.45);
  dos.writeUTF("Hello, World!");
  dos.close();
  FileInputStream fis = new FileInputStream("data.txt");
  DataInputStream dis = new DataInputStream(fis);
  int intValue = dis.readInt();
  double doubleValue = dis.readDouble();
  String stringValue = dis.readUTF();
  System.out.println(intValue);
  System.out.println(doubleValue);
  System.out.println(stringValue);
  dis.close();

7. 对象流的使用

7.1 ObjectInputStream和ObjectOutputStream

ObjectInputStreamObjectOutputStream是用于读写对象的流。被读写的对象必须实现Serializable接口。

  FileOutputStream fos = new FileOutputStream("object.txt");
  ObjectOutputStream oos = new ObjectOutputStream(fos);
  oos.writeObject(new MyClass());
  oos.close();
  FileInputStream fis = new FileInputStream("object.txt");
  ObjectInputStream ois = new ObjectInputStream(fis);
  MyClass obj = (MyClass) ois.readObject();
  ois.close();

8. 总结

本文详细介绍了Java中的I/O流和File类的基本使用方法。通过掌握这些知识,读者可以轻松处理文件的读写操作,并能够对文件和目录进行管理。在实际开发中,合理使用I/O流和File类可以大大提高程序的效率和灵活性。希望本文能为读者在Java文件操作方面提供帮助。

推荐阅读:
  1. java获取随机时间的源码片段
  2. 如何解析java web项目,k8s的yaml模板

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java i/o file

上一篇:nginx+rsync+inotify怎么配置实现负载均衡

下一篇:jquery如何改变button的值

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》