PrintStream

版权声明:正在学习中,有错误欢迎指出。感谢比❤❤~ https://blog.csdn.net/gx17864373822/article/details/79972771
import java.io.*;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        PrintStream ps = new PrintStream("c:/abcd.txt");
        ps.println("abccd");
        ps.print(12234324);
        ps.write(123);//写入的是字符
        ps.close();
    }

}

C盘下abcd.txt文件中为:
abccd
12234324

阅读更多

PrintStream的弊端!

09-18

我们在学习java的第一个程序“Hello World”,就开始使用System.out.println(),System.out就是一个PrintStream(当然其他数出流也可以连接public PrintSteam(OutputStream out)和public PrintSteam(OutputStream out,boolean autoFlush)在默认情况下显示刷新,如果autoFlush参数为true,则在每输入一个字节数组或换行,或则调用println()时就刷新)。rnrn Println()在进行操作的时候会写入一些与平台有关的行分隔字符,在Unix和Mac OS X下是 ,在Mac9下是 ,在windows下是。rn第一个问题是println的输出是与平台有关的,所以写入控制台不会产生任何的问题。但是对于网络客户端和服务器而言就会出现大的问题!大多数网络协议,如Http和Gnutela,指明换行应当为。所以使用println能编写出能正常工作的windows下的程序但是不能工作在Unix和Mac下,在加上readLine()中本身的bug,如果让带有prinln()的程序会使得服务器和客户端都挂起。rn 第二个问题是,如果PrintSteam使用的是 所在平台使用的默认编码方式。但是,乐中编码方式并不是服务期或客户端所期望的。例如一个接收XML文件的WEB希望以UTF-8或UTF16编码,但是一个使用PrintStream的WEB服务器可能在中国——本地化环境系统上发送GBK或GB2312的编码的文件,而不管客户端是否期望或理解这些方式。那么出现可能出现编码失败或者挂起。rn 第三个问题是PrintStraem吞掉所有的异常。这就是得PrintStream很适合作为教科书程序,如HelloWorld为了讲受简单的控制台输出,不让学生去理解复杂的异常处理。但是在WEB程序中往往会出现连接中断、带宽提供商的错误、远程系统崩溃和其他不可预知得原因而断开。所以网络程序必须具备处理数据流中意料之外的中断。完成这一点的方法是处理异常。但是PrintStream捕获了低层输出流抛出的所有异常。并且在PrintStream中5个标准的方法并没有throws IOException()的声明:rnpublic abstract void write();rnpublic void write(byte[] data);rnpublic void write(byte[] data,int offset,int length);rnpublic void flush();rnpublic void close();rn作为替代PrintStream要依靠一个过时标志。如果在底层出现异常,就会设置这个标志,并且程序员要通过checkError()方法检查此标志的值:public boolean checkError().rn简单地说printStream提供的错误通知对于不可靠的网络连接而言,是不完全的。rn文章来源:[url=http://www.1shehui.com/webpro/personlookSpeOpinion.action?id=106]e社会[/url]在此还有对readLine()的分析rn[url=http://www.1shehui.com/webpro/qualifyDownload.action?id=28]解决办法下载地址[/url]

没有更多推荐了,返回首页