• io流之写文件


      用Java程序写文件有多种方式,对于不同类型的数据,有不同的写方法。写文件的关键技术点如下:

       1.FileOutputStream打开文件输出流,通过write方法以字节为单位写文件,是写文件最通用的方法,能写任何类型的文件,特别适合写二进制数据文件。

       2.OutputStreamWriter打开文件输出流,通过write方法以字符为单位写文件,能够将字符数组和字符串写入文件。

       3.PrintWriter打开文件输出流,通过print和println方法将字符串写入文件,与System.out的用法相似,常用于写格式化文本。

      通过以上各种文件输出流将数据写入文件后,需要调用close方法关闭文件输出流。

    实例如下:

     1 package book.io;
     2 
     3 import java.io.File;
     4 import java.io.FileNotFoundException;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.OutputStream;
     8 import java.io.OutputStreamWriter;
     9 import java.io.PrintWriter;
    10 import java.io.Writer;
    11 
    12 public class WriteToFile {
    13     //以字节为单位写文件,适合于写二进制文件,如图片等
    14     public static void writeFileByBytes(String fileName){
    15         File file = new File(fileName);
    16         OutputStream out = null;
    17         try {
    18             out = new FileOutputStream(file);
    19             String content = "文件内容:
    1,The First line;
    2,The Second line";
    20             byte[] bytes = content.getBytes();//读取文件输出流中的字节
    21             //写入文件
    22             out.write(bytes);
    23             System.out.println("写文件" + file.getAbsolutePath() + "成功!");
    24         } catch (IOException e) {
    25             System.out.println("写文件" + file.getAbsolutePath() + "失败!");
    26             e.printStackTrace();
    27         }finally{
    28             if(out != null){
    29                 try {
    30                     out.close();
    31                 } catch (IOException e) {
    32                     e.printStackTrace();
    33                 }
    34             }
    35         }
    36     }
    37     //以字符为单位写文件
    38     public static void writeFileByChars(String fileName){
    39         File file = new File(fileName);
    40         Writer writer = null;
    41         try {
    42             writer = new OutputStreamWriter(new FileOutputStream(file));
    43             String content = "文件内容:
    1,The first line;
    2,The second line";
    44             writer.write(content);
    45             System.out.println("写文件" + file.getAbsolutePath() + "成功!");
    46         } catch (IOException e) {
    47             System.out.println("写文件" + file.getAbsolutePath() + "失败!");
    48             e.printStackTrace();
    49         }finally{
    50             if(writer != null){
    51                 try {
    52                     writer.close();
    53                 } catch (IOException e) {
    54                     e.printStackTrace();
    55                 }
    56             }
    57         }
    58     }
    59     //以行为单位写文件
    60     public static void writeFileByLines(String fileName){
    61         File file = new File(fileName);
    62         PrintWriter writer = null;
    63         try {
    64             writer = new PrintWriter(new FileOutputStream(file));
    65             writer.println("文件内容:");
    66             //写入各种基本类型数据
    67             writer.println(true);
    68             writer.print(155);
    69             writer.println();
    70             writer.flush();
    71             System.out.println("写文件" + file.getAbsolutePath() + "成功!");
    72         } catch (FileNotFoundException e) {
    73             System.out.println("写文件" + file.getAbsolutePath() + "失败!");
    74             e.printStackTrace();
    75         }finally{
    76             if(writer != null){
    77                 writer.close();
    78             }
    79         }
    80     }
    81     public static void main(String[] args){
    82         String fileName = "C:/Users/Admin/Desktop/CAI/20160720/temp1.txt";
    83         WriteToFile.writeFileByBytes(fileName);
    84         fileName = "C:/Users/Admin/Desktop/CAI/20160720/temp2.txt";
    85         WriteToFile.writeFileByChars(fileName);
    86         fileName = "C:/Users/Admin/Desktop/CAI/20160720/temp3.txt";
    87         WriteToFile.writeFileByLines(fileName);
    88     }
    89 }

    结果:

    写文件C:UsersAdminDesktopCAI20160720 emp1.txt成功!
    写文件C:UsersAdminDesktopCAI20160720 emp2.txt成功!
    写文件C:UsersAdminDesktopCAI20160720 emp3.txt成功!

    分析:1.用writeFileByBytes方法以字节为单位写数据到文件。使用了字节输出流FileOutputStream类,通过write方法可以一次写入一个字节,也可以写入一个字节数组

       2.writeFileByChars方法以字符为单位写数据到文件。使用了字符输出流OutputStreamWriter类,将FileOutStream对象封装成OutputStream对象,再调用write方法将字符数据写入到文件中,通过write方法可以一次写入一个字符、一个字符数组或者一个字符串。

      3.writeFileByLines方法以字符串为单位写数据到文件。使用了PrintWriter类,将FileOutputWriter对象封装成PrintWriter对象,再调用print或者println方法将字符串写入到文件,其中println在写入字符串后进行换行,其用法与System.out进行标准输出相似。

  • 相关阅读:
    什么是JDBC的最佳实践?
    如何将jquery对象转换为js对象?
    JQuery有几种选择器?
    jQuery 库中的 $() 是什么
    JS 中 == 和 === 区别是什么?
    有两张表;请用SQL查询,所有的客户订单日期最新的前五条订单记录?
    根据你以往的经验简单叙述一下MYSQL的优化?
    数据库MySQL分页时用的语句?
    LeetCode231-2的幂(水题,考察是否粗心)
    LeetCode191-位1的个数(题目有问题)
  • 原文地址:https://www.cnblogs.com/czl362326/p/5693141.html
Copyright © 2020-2023  润新知