(三十七)、字符流与转换流
来源:互联网 发布:音乐喷泉软件下载 编辑:程序博客网 时间:2024/04/29 23:25
字符流
字符输入流
Reader
Demo:
public class ReaderDemo { public static void main(String[] args) { FileReader reader = null; FileWriter writer = null; try { reader = new FileReader("c:/a.txt"); char[] buf = new char[16]; int len = -1; while ((len = reader.read(buf)) != -1) { System.out.print(new String(buf, 0, len)); } writer = new FileWriter("c:/a.txt"); writer.write("你好"); writer.write(98); writer.flush(); writer.write(new char[] { '啊', '你', '好' }); writer.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { reader.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } }}
字符输出流
Write
public class CopyString { public static void main(String[] args) { File file = new File("src/com/yztcedu/day15_2/CopyString.java"); File desDir = new File("c:/"); copyFile(file, desDir); } private static void copyFile(File file, File desDir) { FileReader reader = null; FileWriter writer = null; try { reader = new FileReader(file); writer = new FileWriter(new File(desDir, file.getName())); char[] buf = new char[4096]; int len = -1; while ((len = reader.read(buf)) != -1) { String msg = new String(buf, 0, len); msg = msg.replaceAll("\\d", "").toUpperCase();// 去掉数字转成大写 writer.write(msg); writer.flush(); } } catch (IOException e) { e.printStackTrace(); } finally { try { reader.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } }}
转换流
InputStreamReader
InputStreamReader有两个主要的构造函数:
InputStreamReader(InputStream in)// 用默认字符集创建一个InputStreamReader对象InputStreamReader(InputStream in,String CharsetName)// 接受已指定字符集名的字符串,并用该字符集创建对象
Main.java
public class Main { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("c:/a.txt"); InputStreamReader reader = new InputStreamReader(fis, "gbk"); BufferedReader br = new BufferedReader(reader); String line = br.readLine(); System.out.println(line); // 编码 byte[] bytes = line.getBytes("gbk"); // 解码 String string = new String(bytes, "utf-8"); System.out.println(string); }}
OutputStreamWrite
OutputStreamWriter也有对应的两个主要的构造函数:
OutputStreamWriter(OutputStream in)// 用默认字符集创建一个OutputStreamWriter对象OutputStreamWriter(OutputStream in,String CharsetNarme)
Demo.java
public class Demo { public static void main(String[] args) throws IOException { BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("c:/a.txt"), "utf-8")); bfw.write("字符转字节"); bfw.flush(); bfw.close(); }}
从键盘读取数据,类似Scanner
public class SystemInDemo { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader( System.in, "utf-8")); BufferedWriter writer = new BufferedWriter(new FileWriter(new File( "c:/a.txt"), true)); String line = ""; System.out.println("请输入:"); while ((line = reader.readLine()) != null) { if (line.equals("q")) { break; } // 只写整型数字 if (line.matches("\\d+")) { writer.write(line); writer.newLine(); writer.flush(); } else { System.out.println("请输入数字"); } } reader.close(); writer.close(); }}
0 0
- (三十七)、字符流与转换流
- 字符流与字节流的转换
- 工作流系统之三十七 自由流的实现(续)
- 字符转换流
- 字节字符转换流
- IO 输入与输出(8)-- 字节流与字符流的转换
- Java 字节流与字符流的转换
- java 字符流与字节流的转换
- 字节流与字符流之间的转换
- 字节流与字符流的区别及相互转换
- JAVA字节流与字符流的相互转换
- JAVA字节流与字符流的相互转换
- Java基础学习总结(14)---File类、字节流与字符流、字节字符转换流
- 转换流(字节流-->字符流)
- IO流(字符流:转换流)
- javaAPI(字符流,转换流)
- java (字符流、转换流)
- java IO (四) 字节流与字符流之间的转换
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程
- Java之关键字和保留字
- ubuntu小白跟着百度修改了自己的权限进了大坑
- 查找并输出单链表的倒数第k个结点
- 从客户端游戏漏洞看开发中的安全隐患
- (三十七)、字符流与转换流
- maven 工程启动找不到 Spring ContextLoaderListener 的解决办法【亲测有效】
- 数据结构实验之排序三:bucket sort
- vijos 1025 01背包
- centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解
- iOS的文件读写
- 笔试基础归纳-8.22
- (leedcode)152. Maximum Product Subarray
- 初始化加载