【达内课程】PrintWriter
文章目录
- 介绍
- 栗子:文本文件的转码复制
介绍
PrintWriter 与 PrintStream 相同。PrintStream 只能接字节流,而 PrintWriter 既能接字节流又能接字符流。
PrintStream 最终输出的总是 byte 数据,而 PrintWriter 则是扩展了 Writer 接口,它的 print()/println() 方法最终输出的是 char 数据。两者的使用方法几乎是一模一样的。
栗子:文本文件的转码复制
public class Main {public static void main(String[] args) {System.out.println("输入源文件");String s = new Scanner(System.in).nextLine();File from = new File(s);if (!from.isFile()) {System.out.println("请输入正确的文件路径");return;}System.out.println("输入目标文件");s = new Scanner(System.in).nextLine();File to = new File(s);if (to.isDirectory()) {System.out.println("请输入具体的文件路径,不是目录路径");return;}System.out.println("输入原文件字符编码");String fromCharset = new Scanner(System.in).nextLine();System.out.println("输入目标文件字符编码");String toCharset = new Scanner(System.in).nextLine();try {copy(from, to, fromCharset, toCharset);System.out.println("复制成功");} catch (Exception e) {System.out.println("复制失败");}}private static void copy(File from, File to, String fromCharset, String toCharset) throws Exception {// TODO Auto-generated method stub/*** BufferedReader* InputStreamReader,fromCharset* FileInputStream* from** PrintWriter* OutputStreamWriter,toCharset* FileOutputStream* to** 循环按行读写** */BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(from), fromCharset));PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(to), toCharset));String line;while ((line = in.readLine()) != null) {out.println(line);}in.close();out.close();}
}
运行程序
f7 内容为
转为十六进制查看。原来编码为 UTF-8,英文单字节,中文3字节
f7copy 内容
转为十六进制查看。现在编码为 GBK,英文单字节,中文双字节,增加了换行符。
【达内课程】PrintWriter相关推荐
- 【达内课程】面向对象之多态
文章目录 定义和作用 如何实现多态 例子1:Human 类 instanceof 关键字 例子2:Point3D 类 例子3:绘制图形 类型转换 定义和作用 多态的定义 面向对象的多态性,即" ...
- 【达内课程】面向对象之抽象类
文章目录 抽象类的概念 举例1:绘制图形项目修改 举例2:员工类 抽象类的概念 抽象类的基本概念 1.很多具有相同特征和行为的对象可以抽象为一个类:很多具有相同特征和行为的类可以抽象为一个抽象类. 2 ...
- java达内项目_达内课程:完成一个项目的整个流程
感谢达内,在这里,我首先学到的知识是C#基础知识,了解了.Net编译器原理.主要发行版本.应用范围以及如何创建一个HelloWorld程序,学会一些简单的Dos命令操作及Net文本编辑器Vs. 一周的 ...
- 【达内课程】Android入门知识
文章目录 当新建一个 Android 项目时 关于布局和控件 语言的国际化自适应 屏幕尺寸自适应 style样式 简单登录界面实现 课程到这里我们讲了许多 Java 的知识,也学习了 Android ...
- 【达内课程】异常Exception(上)
文章目录 什么是异常 异常分类 初识异常 捕获异常 try...catch...finally throws throw 抛出异常的过程 异常包装 什么是异常 程序运行时,发生的不被期望的事件,它阻止 ...
- 【达内课程】ListView使用
文章目录 ListView ArrayAdapter SimpleAdapter BaseAdapter 优化ListView 使用 ListView实现联系人列表 改进:联系人增加字母索引 改进:联 ...
- 【达内课程】Enum(枚举)的使用
文章目录 常规用法 遍历枚举 作为switch的判断条件 给 enum 自定义属性和方法 替代方案 常规用法 在Java中,被 enum (enumeration)关键字修饰的类型就是枚举类型,是一组 ...
- 【达内课程】SQLite(二)中现成的增删改查方法
文章目录 新增数据 insert() 删除数据 delete() 查询 栗子:使用 CursorAdapter 显示数据查询结果 除了使用 sql 语句,SQLiteDatabase 中提供了一个现成 ...
- 【达内课程】算式计算器实现
文章目录 效果图 算式计算器设计思路 代码实现 效果图 算式计算器设计思路 写一个 Formula 类,在类中写一个迭代器,在此迭代器中拆分出用户输入的算式的数字和运算符 以运算a+b-c*d/e为例 ...
最新文章
- Keras【Deep Learning With Python】更优模型探索Keras实现CNN
- 剑指offer系列之六十:序列化二叉树
- 大学生计算机实验基础考试,大学生计算机基础考试题库完整(56页)-原创力文档...
- 分页刷新(SwipeRefreshLayout+SwipeMenuRecyclerView)
- 大话数据结构 java源代码_大话数据结构(八)Java程序——双向链表的实现
- 一个关于使用 $month,$dayOfMonth 进行按月/日统计的问题
- 6张信用卡欠款10000到47000不等,会被起诉坐牢吗?
- springboot---整合redis
- CF 1529C Parsa‘s Humongous Tree
- Namomo Fish(Easy) Round 1
- Web中树形数据(层级关系数据)的实现—以行政区树为例
- 性能指标、响应时间、并发量…聊聊性能优化的衡量指标
- 如歌将两个数组合并_将数组数据拆分后再合并,作为字典的键,实现多条件数据汇总...
- 京东订单系统高可用架构及演变过程
- [java]房屋出租系统
- Iphone8如何投屏到电脑 苹果手机投屏到电脑
- 蓝牙 aptx android,蓝牙aptx干嘛用的
- uniapp-小程序点击底部导航跳转并刷新页面
- 又写无关IT的东西:经济学术语
- 鸿蒙系统卸载预装,神器:无需Root卸载预装APP
热门文章
- nginx配置https证书双向认证
- 0基础本地安装live2d看板娘 -v-
- 刚毕业年薪40w......程序员薪资天花板?
- DM单节点部署实施过程
- 2021-12-21 《聪明的投资者》学习笔记-17.四个非常有启发的案例--失败案例
- Oracle Business Intelligence Foundation 12c sample app虚拟机下载和使用
- Learning Astute Graphics for Illustrator 为Illustrator学习敏锐的图形 Lynda课程中文字幕
- CentOS 7安装Cowsay(奶牛有话说)
- 向日葵远程控制端 for Mac
- 智工教育:公务员山东考区报名确认注意事项