使用PrintWriter完成写操作 ,实现简易记事本工具
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完成写操作 ,实现简易记事本工具的更多相关文章
- RandomAccessFile实现简易记事本工具操作
package seday03; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Scann ...
- 用java写的一个简易记事本
import java.awt.*; import java.awt.event.*; import java.io.*; public class NoteDemo { private Frame ...
- Java图形界面开发—简易记事本
在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: ...
- 《winform窗体应用程序》----------简易记事本
首先先给大家发表几张图片,描述一下记事本程序要实现的功能以及界面设计. 以上这些就是简易记事本的的主界面设计. 下面我们来做一些简单的讲解: 1.使用MenuStrip控件来实现菜单栏的基本设计. 在 ...
- Java写操作
//:ThinkingInJava/net.mindview.io/write2File.java package net.mindview.io; import java.io.BufferedRe ...
- Android简易记事本
此次做的Android简易记事本的存储方式使用了SQLite数据库,然后界面的实现比较简单,但是,具有增删改查的基本功能,这里可以看一下效果图,如下: 具体操作就是长按可以删除操作,点击可以进行修改, ...
- Navicat操作MySQL简易教程
前言: 日常使用 MySQL 的过程中,我们可能会经常使用可视化工具来连接 MySQL ,其中比较常用的就是 Navicat 了.平时也会遇到某些同学问, Navicat 怎么安装,如何使用等问题.本 ...
- NoSQL生态系统——事务机制,行锁,LSM,缓存多次写操作,RWN
13.2.4 事务机制 NoSQL系统通常注重性能和扩展性,而非事务机制. 传统的SQL数据库的事务通常都是支持ACID的强事务机制.要保证数据的一致性,通常多个事务是不可能交叉执行的,这样就导致了可 ...
- HDFS的工作原理(读和写操作)
工作原理: NameNode和DateNode,NameNode相当于一个管理者,它管理集群内的DataNode,当客户发送请求过来后,NameNode会 根据情况指定存储到哪些DataNode上,而 ...
随机推荐
- VS2019 开发Django(七)------VS2019不能格式化html代码
如题,在VS2019中不能使用快捷键Ctrl+K,+D格式化html代码,印象中之前的版本是可以的吧!不太确定,这给我带来了很大的麻烦,在编写Django项目的时候,标准的模板是新建的html文件,不 ...
- 魔术师发牌问题 -- python实现
问题描述 魔术师手中有A.2.3--J.Q.K十三张黑桃扑克牌.在表演魔术前,魔术师已经将他们按照一定的顺序叠放好(有花色的一面朝下).魔术表演过程为:一开始,魔术师数1,然后把最上面的那张牌翻过来, ...
- AE单词备忘
类的基本特性内 approved 已批准 implemented 已实施 mandatory 强制性的 proposed 偍仪的 validated 已验证
- VS激活(Visual Studio)
以下是Visual Studio各个版本的激活密匙: Visual Studio Enterprise 企业版: BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio ...
- docker学习笔记---基本命令
[root@docker ~]# docker Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Opt ...
- VS2019 开发Django(五)------createsuperuser
导航:VS2019开发Django系列 上篇我们已经把LazyOrders中用到的C#的实体转成了Django中的Entity,并且已经迁移数据库成功,那么,今天继续介绍Django中内置的数据库操作 ...
- ESP8266的RTOS版本ota在线升级基本流程及备忘
ESP8266的ota升级由于涉及到不同的flash空间大小,以及新旧版本的不同,所以流程相对比较复杂.笔者这个倒腾的时间还是有一些的,不过,总归把事情解决了.下面记录一下基本的流程和遇到的问题. 还 ...
- javascript学习总结之函数
前言 在学习javascript函数的时候,有几个经常很容易混淆的方法,call,apply,bind,caller,callee,这些方法的使用,这些也可以说是会频繁使用的一些方法,在此通过查阅相关 ...
- Ansible-下部
ansible-playbook playbook是由一个或多个模块组成的,使用多个不同的模块,完成一件事情. ansible软件特点 可以实现批量管理可以实现批量部署ad-hoc(批量执行命令)- ...
- ES、kibana安装及交互操作
一.ES的安装与启动 1.ES安装(Windows环境) 下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 版本 ...