Java Groovy怎么写文件到磁盘?

文章导读
Previous Quiz Next Groovy 中写入文件 在 Groovy 中,我们可以使用多种方式向文件写入数据。以下是创建文件的三种最常用方式 −
📋 目录
  1. A Groovy 中写入文件
  2. B 使用 FileOutputStream 构造函数写入文件
  3. C 示例 - 使用 FileOutputStream 构造函数写入文件
  4. D 使用 FileWriter.write() 方法写入文件
  5. E 使用 withWriter 方法写入文件
A A

Groovy - 写入文件



Previous
Quiz
Next

Groovy 中写入文件

在 Groovy 中,我们可以使用多种方式向文件写入数据。以下是创建文件的三种最常用方式 −

  • 使用 FileOutputStream() 构造函数

  • 使用 FileWriter.write() 方法

  • 使用 Files.write() 方法

让我们逐一查看在 Groovy 中写入文件的方式。

使用 FileOutputStream 构造函数写入文件

FileOutputStream 用于创建文件并向其中写入数据。如果文件不存在,该流会在打开用于输出前创建文件。

语法

以下构造函数接受一个字符串作为文件名,用于创建输出流对象以写入文件 −

OutputStream f = new FileOutputStream("hello.txt") 

示例 - 使用 FileOutputStream 构造函数写入文件

以下示例演示了使用 FileOutputStream 在当前目录中写入文件 −

Example.groovy

class Example {
   public static void main(String[] args) {
      try {
         byte[] bytes = [65, 66, 67, 68, 69];
         OutputStream os = new FileOutputStream("test.txt");
         for(int x = 0; x < bytes.length ; x++) {
            os.write( bytes[x] );   // 写入字节
         }
         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,并以二进制格式写入给定的数字。同样的内容也会输出到 stdout 屏幕上。

输出

ABCDE  

使用 FileWriter.write() 方法写入文件

FileWriter.write() 方法允许向文件写入字符,如下所示 −

语法

// 获取现有文件
File file = new File("test.txt");

// 写入内容
FileWriter writer = new FileWriter(file);
writer.write("Test data");
writer.close();

示例:使用 FileWriter.write() 方法写入文件

以下示例演示了使用 FileWriter.write() 方法向指定目录中的文件写入内容 −

class Example {
   static void main(String[] args) {
      try {
          File file = new File("test.txt");
          
          // 创建文件
          if (file.createNewFile()) { 
             System.out.println("文件已创建!");
          } else {
             System.out.println("文件已存在。");
          } 
          
          // 写入内容
          FileWriter writer = new FileWriter(file);
          writer.write("Test data");
          writer.close();
          
          
          // 读取内容
          FileReader reader = new FileReader(file);
          
          int c;
          while ((c = reader.read()) != -1) {
        	  char ch = (char) c;
              System.out.print(ch);
          }
      } catch (IOException e) {
         System.out.print("Exception");
      }	
   }
}

上述代码将创建文件 test.txt,并以文本格式写入给定的字符串。同样的内容也会输出到 stdout 屏幕上。

输出

文件已创建!
Test data

使用 withWriter 方法写入文件

File 对象,可以使用自定义 writer 写入文件,如下所示−

语法

new File('test.txt').withWriter('utf-8') { writer -> writer.writeLine 'Hello World' }

示例:使用 Files.write() 方法写入文件

以下示例演示了使用 Files.write() 方法在指定目录中写入文件 −

class Example {
   static void main(String[] args) {  
      try {
         new File('test.txt').withWriter('utf-8') { 
            writer -> writer.writeLine 'Hello World'
         }
      } catch (IOException e) {
         System.out.print("Exception");
      }	
   }
}

上述代码将创建文件 test.txt,并以文本格式写入指定的字符串。

输出

Hello World