Java-->PrintStream

--> 用过之后都不想用read、write了,感觉还是挺方便的...

package com.dragon.java.hwletter;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;

/*
 * 编写程序来实现如下功能
 a:在C盘下创建一个目录Letter
 b:在控制台显示下列选项:1 查看请假条   2 撰写请假条
 c:如果用户选择2,则提示用户撰写请假条,并把撰写的内容存入到Letter文件夹下。
 格式如下:
 请假人:王宝强
 请假日期:2016年8月15日
 请假原因:向法院起诉马蓉离婚.....先请假一天等等
 d:如果用户选择1,则在控制台输出请假条的内容。
 */
public class Test {
    private static String filePath = "D:/workspace/08-15/src/com/dragon/java/hwletter/Letter/letter.txt";
    private static String line = null;

    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        new File(filePath.replace("/letter.txt", "")).mkdirs();
        while (true) {
            System.out.println("1 查看请假条   2 撰写请假条");

            switch (scanner.nextInt()) {
            case 1:
                if (!(new File(filePath).exists())) {
                    System.out.println("目前还没有请假条!");
                    continue;
                }
                readFile();
                break;
            case 2:
                writeFile();
                break;
            default:
                System.out.println("输入有误!...");
                break;
            }
        }
    }

    private static void readFile() {
        System.out.println("请假条:");
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(filePath));
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.out.println(e);
        }
    }

    private static void writeFile() {
        System.out.println("请写请假条:");
        BufferedWriter bw = null;
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    System.in, "gbk"));
            new File(filePath).createNewFile();
            bw = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(filePath)));
            while (true) {
                line = br.readLine();
                if ("end".equals(line)) {

                    break;
                } else if (line == null) {
                    br.close();
                    break;
                }
                bw.write(line);
                bw.newLine();
            }
        } catch (IOException e) {
            System.out.println(e);
        } finally {
            try {
                // br.close();
                bw.close();
            } catch (IOException e) {
                System.out.println(e);
            }
        }
    }
}

--> 但是以后Android 都没有PrintStream 了啊...

时间: 2024-10-15 13:29:59

Java-->PrintStream的相关文章

java PrintStream的理解

PrintStream 其实是FilterOutputStream的一种 public class PrintStream extends FilterOutputStream implements Appendable, Closeable 直接已知子类: LogStream 已过时. 无替代版本 PrintStream public PrintStream(OutputStream out, boolean autoFlush)创建新的打印流. 参数: out - 将向其打印值和对象的输出流

【Java】异常处理_学习笔记

异常: 1.格式1: try { //业务代码 } catch(Exception e) { //异常处理代码 } 说明: a.   异常抛出:执行try里的代码,系统会自动生成一个异常对象,该对象会被提交给Java运行环境的过程. b.   异常捕获:Java运行环境将接收到的异常对象与catch块匹配的过程. c.   找不到匹配catch块,程序终止. 2.格式2: try { //业务代码 } catch(Exception1 e1) { //异常处理代码 } catch(Excepti

Java的IO系统

Java的IO操作 最近想用Java写一个爬虫,知乎了一下,很多人推荐如果业务逻辑不太复杂,都推荐使用国内大牛写的的一个框架webmagic,这个是java实现的,思路参照谷歌的Scrapy .但是实现爬虫需要用到很多关于IO操作和多线程,发现这两项一直都是我java比较模糊的地方,这次就顺便学习一下,我看的是<java编程思想>. 对于IO的存取,不仅存在与各种I/O源端和想与之通信的接收端(接收端包括文件.控制台.网络链接等等),而且可能还需要有多种不同的方式与它们通信(顺序.随机存取.缓

Java 演示如何用标准的输入输出流重定向到一个文件

最近,在学习Java,并且学习到了Java的IO(输入与输入),什么是Java IO呢? IO流位于java.io包中,根据操作数据不同,分为字节流和字符流:根据数据输入方面的不同又可分为输入流和输出流,无论是何种流,最终都依赖于操作系统.一.字节流:1.字节流,主要用于图片.音频.视频的传输,以二进制的形式进行,分为字节输入流和字节输出流:字节流操作的是字节数组:字符流操作的是字符数组.2.字节输入与字节输出流的继承体系图 InputStream 常用方法方法声明功能描述int read()从

Java的I/O系统

1.File类 File类既能代表一个特定文件的名称,又能代表一个目录下的一组文件的名称. 如果我们调用不带参数的list()方法,便可以获得此File对象包含的全部列表.然而,如果我们想获得一个受限列表,例如,想得到所有扩展名为.java的文件,那么我们就要用到"目录过滤器",这个类告诉我们怎样显示符合条件的File对象. import java.util.regex.*; import java.io.*; import java.util.*; public class DirL

java_IO

流的分类: 按数据流的方向分为输入流和输出流 按处理数据单位不同分为字符流和字节流(一个字符为两个字节) 按照功能不同分为节点流和处理流 节点流为从一个特定的数据源读写数据 处理流是连接在已存在的流上,通过对数据的处理为程序提供更强大的读写功能 InputStream 基本方法:(具体可见API) int read() throws IOException //从输入流中读取数据的下一个字节.返回 0 到 255 范围内的 int 字节值. //如果到达流的末尾,则返回 -1. int read

(JAVA)从零开始之--打印流PrintStream记录日志文件

这里的记录日志是利用打印流来实现的. 文本信息中的内容为String类型.而像文件中写入数据,我们经常用到的还有文件输出流对象FileOutputStream. 1 File file = new File("F:\\a.txt"); 2 FileOutputStream outputStream = new FileOutputStream(file,true);//第二个参数为追加文本 3 outputStream.write(97); 上面的代码执行完之后,a.txt中的内容存的

JAVA学习笔记(三十四)- 字节打印流 PrintStream

PrintStream字节打印流 import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; import java.io.Reader; /* * Pri

java 打印流(PrintStream)

打印流(PrintStream):打印流可以打印任意类型的数据,而且打印流在打印数据之前会将数据转为字符串在进行打印 PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的增强,其中定义了很多的重载的print()和println(),方便输出各种类型的数据. PrintWriter PrintStream:是一个字节打印流,System.out对应的类型就是PrintStream. 它的构造函数可以接收三种数据类型的值. 1,字符串路径. 2,File对象. 3,O

Java.io.outputstream.PrintStream:打印流

Java.io.outputstream.PrintStream:打印流 1:提供了更多的功能,比如打印方法.可以直接打印任意类型的数据. 2:它有一个自动刷新机制,创建该对象,指定参数,对于指定方法可以自动刷新. 3:它使用的本机默认的字符编码. 4:该流的print方法不抛出IOException. 该对象的构造函数. PrintStream(File file)  :创建具有指定文件且不带自动行刷新的新打印流. PrintStream(File file, String csn) :创建具