资讯专栏INFORMATION COLUMN

Java IO学习笔记六

syoya / 2257人阅读

摘要:实例文件中的结果如下陈加兵姓名陈加兵年龄成绩姓名陈加兵年龄成绩文件创建成功陈加兵姓名年龄成绩姓名年龄成绩继承,主要针对的是字符流的操作向文本输出流打印对象的格式化表示形式。构造函数使用指定文件创建不具有自动行刷新的新。

打印流

在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流PrintStream)和字符打印流PrintWrite)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等,相对于前面学习的几个文件的操作来说,这里的打印流是最简便的一个类了

PrintStream

主要功能是格式化的将内容写入文件,并不是打印在控制台上

PrintStream最大的好处就是可以格式化的输出,相信学过c的朋友都知道prinf这格式化输出函数,这里的PrintStream实现了更加简单的格式化输出,不需要使用什么%d,%f了,只需要都是用%s即可,这个很像python

PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。

构造函数

PrintStream(File file) 创建具有指定文件且不带自动行刷新的新打印流。

PrintStream(OutputStream out) 创建新的打印流。

PrintStream(OutputStream out, boolean autoFlush) 创建新的打印流,并且设置自动刷新

PrintStream(String fileName) 创建具有指定文件名称且不带自动行刷新的新打印流。

File file_2=new File("/tmp"+File.separator+"test"+File.separator+"test.txt");
PrintStream printStream=new PrintStream(file_2);  //直接使用File
PrintStream printStream=new PrintStream(new FileOutputStream(file_2));  //使用OutputStream的子类FileOutputStream
常用的函数

PrintStream append(char c) 在此输入流的后面追加字符。

PrintStream append(CharSequence csq) 将指定字符序列添加到此输出流。

PrintStream append(CharSequence csq, int start, int end) 将指定字符序列的子序列添加到此输出流。

print() 打印常用的数据类型,比如String,char,int ,double,float,boolean,long,short

println() 打印常用的数据类型,但是带有换行符

printf(String format, Object... args) 使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。

format(String format, Object... args) 使用指定格式字符串和参数将格式化字符串写入此输出流中。

close()

flush()

实例
 package IO;


import java.io.*;

/**
 * Created by chenjiabing on 17-5-25.
 */
 
 
/**test.txt文件中的结果如下:
 陈加兵
 2299.9
 姓名:陈加兵,n年龄:22,成绩:99.9
 姓名:陈加兵,n年龄:22,成绩:99.9
 c
 chenjiabi
 */

public class demo9 {
    public static void main(String[] args) {
        PrintStream printStream = null;
        File file_1 = new File("/tmp" + File.separator + "test");
        File file_2 = new File("/tmp" + File.separator + "test" + File.separator + "test.txt");
        if (!file_1.exists()) {
            file_1.mkdir();
            System.out.println("文件创建成功");
        }

        try {
//            PrintStream printStream=new PrintStream(file_2);
            printStream = new PrintStream(new FileOutputStream(file_2));
            String name = "陈加兵";
            int age = 22;
            float grade = 99.9f;

            printStream.println(name);//println()

            printStream.print(age);//print()

            printStream.println(grade);//print()

            printStream.format("姓名:%s,n年龄:%s,成绩:%s%s", name, age, grade, "
");//format()

            printStream.printf("姓名:%s,n年龄:%s,成绩:%s%s", name, age, grade, "
");

            printStream.append("c");   //append
            printStream.append("
chenjiabing",0,10);  //append
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (printStream != null) {
                printStream.flush();
                printStream.close();
            }
        }


    }
}

PrintWriter

继承Writer,主要针对的是字符流的操作

向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

PrintStream 类不同,如果启用了自动刷新,则只有在调用 printlnprintfformat 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。

此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 checkError() 是否出现错误。

构造函数

PrintWriter(File file) 使用指定文件创建不具有自动行刷新的新 PrintWriter

PrintWriter(OutputStream out) 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter

PrintWriter(OutputStream out, boolean autoFlush) 通过现有的 OutputStream 创建新的 PrintWriter

PrintWriter(String fileName) 创建具有指定文件名称且不带自动行刷新的新 PrintWriter

常用函数

这里的常用到的函数和PrintStream的差不多就不再详细的列出来了,详情请看帮助文档

实例
package IO;

import java.io.*;

/**
 * Created by chenjiabing on 17-5-25.
 */
public class demo10 {
    public static void main(String[] args)
    {
        PrintWriter printWriter=null;
        File file=new File("/tmp"+File.separator+"test"+File.separator+"file.txt");
        try {
            printWriter=new PrintWriter(new FileOutputStream(file));
            printWriter.println("chenjiabing");
            printWriter.println("陈加兵");
        }catch (IOException e)
        {
            e.printStackTrace();
        }finally {
                if(printWriter!=null)
                {
                    printWriter.close();
                }
        }

    }
}
参考文章

http://www.cnblogs.com/lich/archive/2011/12/11/2284093.html

http://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/PrintWriter.html

http://tool.oschina.net/uploads/apidocs/jdk-zh/java/io/PrintStream.html

http://blog.csdn.net/yyyandroid/article/details/7756390

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67118.html

相关文章

  • 写这么多系列博客,怪不得找不到女朋友

    摘要:前提好几周没更新博客了,对不断支持我博客的童鞋们说声抱歉了。熟悉我的人都知道我写博客的时间比较早,而且坚持的时间也比较久,一直到现在也是一直保持着更新状态。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好几周没更新博客了,对不断支持我博客的童鞋们说声:抱歉了!。自己这段时...

    JerryWangSAP 评论0 收藏0
  • Java IO学习笔记

    摘要:学习笔记二流的概念在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。主要功能是向文件中写入内容构造函数根据给定的对象构造一个对象。 Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来...

    ideaa 评论0 收藏0

发表评论

0条评论

syoya

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<