package seday07;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;

/**
* @author xingsir
* 简易记事本工具
* 程序启动后,要求用户输入文件名,然后对该文件写操作。 用户在控制台输入的每行字符串都按行写入该文件。用户输入的为exit时,程序退出。
* 使用PrintWriter完成写操作,并且创建要求自行创建流连接
*/
public class Test {

public static void main(String[] args) throws IOException {

Scanner scanner=new Scanner(System.in);
System.out.println("请输入文件名:");
String name=scanner.nextLine();//例如输入:Notepad,敲回车
FileOutputStream fos=new FileOutputStream(name);//文件流,(将字节写入到文件)
OutputStreamWriter osw= new OutputStreamWriter(fos,"GBK");//转换流(将字符转换成字节)
BufferedWriter bw= new BufferedWriter(osw);//缓冲字符流(加快写入文本数据))
/*
* 在流连接中创建pw时,构造方法允许我们再传入 一个boolean型参数,当这个值为true时,
* 那么 当前pw就具有了自动行刷新功能,即:当我们调用println方法后,会自动flush。 但是需要注意:print方法是不会自动flush。
*/
PrintWriter pw= new PrintWriter(bw,true);//缓冲字符输出流(按行写,并自动行刷新)
System.out.println("请输入文字:");
while(true) {
String line = scanner.nextLine();//控制台写入文字
if("EXIT".equals(line.toUpperCase())) {
break;//退出
}
pw.println(line);//

}
System.out.println("已写出");
pw.close();//关闭
}
}

使用PrintWriter完成写操作 ,实现简易记事本工具的更多相关文章

  1. RandomAccessFile实现简易记事本工具操作

    package seday03; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Scann ...

  2. 用java写的一个简易记事本

    import java.awt.*; import java.awt.event.*; import java.io.*; public class NoteDemo { private Frame ...

  3. Java图形界面开发—简易记事本

          在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: ...

  4. 《winform窗体应用程序》----------简易记事本

    首先先给大家发表几张图片,描述一下记事本程序要实现的功能以及界面设计. 以上这些就是简易记事本的的主界面设计. 下面我们来做一些简单的讲解: 1.使用MenuStrip控件来实现菜单栏的基本设计. 在 ...

  5. Java写操作

    //:ThinkingInJava/net.mindview.io/write2File.java package net.mindview.io; import java.io.BufferedRe ...

  6. Android简易记事本

    此次做的Android简易记事本的存储方式使用了SQLite数据库,然后界面的实现比较简单,但是,具有增删改查的基本功能,这里可以看一下效果图,如下: 具体操作就是长按可以删除操作,点击可以进行修改, ...

  7. Navicat操作MySQL简易教程

    前言: 日常使用 MySQL 的过程中,我们可能会经常使用可视化工具来连接 MySQL ,其中比较常用的就是 Navicat 了.平时也会遇到某些同学问, Navicat 怎么安装,如何使用等问题.本 ...

  8. NoSQL生态系统——事务机制,行锁,LSM,缓存多次写操作,RWN

    13.2.4 事务机制 NoSQL系统通常注重性能和扩展性,而非事务机制. 传统的SQL数据库的事务通常都是支持ACID的强事务机制.要保证数据的一致性,通常多个事务是不可能交叉执行的,这样就导致了可 ...

  9. HDFS的工作原理(读和写操作)

    工作原理: NameNode和DateNode,NameNode相当于一个管理者,它管理集群内的DataNode,当客户发送请求过来后,NameNode会 根据情况指定存储到哪些DataNode上,而 ...

随机推荐

  1. python GUI编程tkinter示例之目录树遍历工具

    摘录 python核心编程 本节我们将展示一个中级的tkinter应用实例,这个应用是一个目录树遍历工具:它会从当前目录开始,提供一个文件列表,双击列表中任意的其他目录,就会使得工具切换到新目录中,用 ...

  2. 基于windows server 2016和sqlserver 2016 AlwaysOn的群集配置

    文档:基于windows server 2016和sqlserver 2...链接:http://note.youdao.com/noteshare?id=4f07c1c3f7d0e32b7631d7 ...

  3. ASP.NET CORE 使用Consul实现服务治理与健康检查(2)——源码篇

    题外话 笔者有个习惯,就是在接触新的东西时,一定要先搞清楚新事物的基本概念和背景,对之有个相对全面的了解之后再开始进入实际的编码,这样做最主要的原因是尽量避免由于对新事物的认知误区导致更大的缺陷,Bu ...

  4. SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)

    一.什么是Ribbon: Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法. 将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连 ...

  5. 微信小程序—支付宝小程序与微信小程序的不同点对比

    支付宝小程序语法 http://caibaojian.com/aliapp-wxapp.html https://www.cnblogs.com/bgwhite/p/9447639.html http ...

  6. ORA-27140: attach to post/wait facility failed

    Errors in file /home/u01/app/oracle/diag/rdbms/hnybdb21/hnybdb211/trace/hnybdb211_j000_143099.trc:OR ...

  7. 如何向小姐姐解释SQL和NoSQL之间的区别

    最近,在Medium上出现了一个采访问题:如何向奶奶解释SQL和NoSQL之间的区别.我认为作者使用自己的结构化家谱来比较sql和nosql之间的差异.写作非常好,但是有点尴尬.面试官没有时间听你的话 ...

  8. ASP.NET Core on K8S深入学习(8)数据管理

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在Docker中我们知道,要想实现数据的持久化(所谓Docker的数据持久化即 ...

  9. 最后的记忆——Spring ApplicationContext

    本文尝试分析一下Spring 的 ApplicationContext体系的 接口设计,尝试理解为什么这么做,为什么接口这么设计.为什么这么去实现,为什么需要有这个方法,为什么 这样命名?接口.类.方 ...

  10. PlayJava Day023

    进程:进程是程序的一次动态执行过程,它经历了从代码加载.执行到执行完毕的一个完整过程,这个过程也是进程本身从产生.到发展到最终消亡的过程 多进程:多进程操作系统能同时运行多个进程(程序) 多线程:是指 ...