Java中字符流
2016-07-15 08:08
316 查看
输入字符流
字节流读取文件
package com.cloud.reader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Arrays; public class Demo4 { public static void main(String[] args) throws IOException { readTest(); } //字节流读取文件 public static void readTest() throws IOException{ File file = new File("F:\\a.txt"); FileInputStream fileInputStream = new FileInputStream(file); byte[] buf = new byte[1024]; for(int i=0;i<3;i++){ fileInputStream.read(buf); System.out.println(new String(buf)); } fileInputStream.close(); } //使用字节流写中文 public static void writeTest() throws IOException{ File file = new File("F:\\a.txt"); FileOutputStream fileOutputStream = new FileOutputStream(file); String data="大家好"; byte[] buf = data.getBytes(); System.out.println("输出内容:"+Arrays.toString(buf)); fileOutputStream.write(buf); fileOutputStream.close(); } } |
字符输入流流程
package com.cloud.reader; import java.io.File; import java.io.FileReader; import java.io.IOException; /* 字节流:字节流读取的是文件中的二进制数据,不会自动转为可以看懂的字符 字符流:把读到的数据进行对应的编码与解码。字符流=字节流+编码(解码) 输入字符流: --|Reader 输入字符流的基类 抽象类 ----|FileReader 读取文件的输入字符流 */ public class Demo5 { public static void main(String[] args) throws IOException { readTest2(); } //缓冲字符数据读取文件 public static void readTest2() throws IOException{ File file = new File("F:\\a.txt"); FileReader fileReader = new FileReader(file); char[] buf = new char[1024]; int length = 0; while((length = fileReader.read(buf))!=-1){ System.out.println(new String(buf,0,length)); } fileReader.close(); } //字符流读取文件 public static void readTest1() throws IOException{ File file = new File("F:\\a.txt"); FileReader fileReader = new FileReader(file); int content = 0; while((content = fileReader.read())!=-1){ System.out.println((char)content); } fileReader.close(); } } |
输出字符流
输出字符流流程
package com.cloud.reader; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class Demo6 { public static void main(String[] args) throws IOException { File file = new File("F:\\a.txt"); FileWriter fileWriter = new FileWriter(file); String data = "今天天气真好"; fileWriter.write(data); fileWriter.close(); } } |
缓冲输入字符流
缓冲输入字符流流程
package com.cloud.reader; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Arrays; /* 输入字符流 --|Reader 所有输入字符流的基类,抽象类 ----|FileReader 读取文件字符串的输入字符流 ----|BufferReader 缓冲输入字符流,提高读取文件的效率,拓展FileReader的功能,内部维护字符数组 注:缓冲流不具备读写文件的能力 */ public class Demo1 { public static void main(String[] args) throws IOException { File file = new File("F:\\a.txt"); FileReader fileReader = new FileReader(file); String line = null; while((line = myReadLine(fileReader))!=null){ System.out.println(line); } } //自己实现ReadLine方法 public static String myReadLine(FileReader fileReader) throws IOException{ //创建一个字符串缓冲对象 StringBuilder sb = new StringBuilder();//用来存储读取的数据 int content = 0; while((content=fileReader.read())!=-1){ if(content=='\r'){ continue; } else if(content=='\n'){ break; }else{ sb.append((char)content); } } //数据读完 if(content==-1){ return null; } return sb.toString(); } public static void readTest() throws IOException{ //找到目标文件 File file = new File("F\\a.txt"); //建立数据的输入通道 FileReader fileReader = new FileReader(file); //建立缓冲输入字符流 BufferedReader bufferedReader = new BufferedReader(fileReader); //读取数据 String line = null; while((line = bufferedReader.readLine())!=null){ System.out.println(Arrays.toString("aaa".getBytes())); } bufferedReader.close(); } } |
缓冲输出字符流
缓冲输出字符流流程
package com.cloud.reader; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; /* 输出字符流 --|Writer 所有输出字符流的基类,抽象类 ----|FileWriter 向文件输出字符数据的输出字符流 ----|BufferdWriter 缓冲输出字符流,内部维护长度为8192的字符数据作为缓冲区 */ public class Demo2 { public static void main(String[] args) throws IOException{ File file = new File("F:\\a.txt"); FileWriter fileWriter = new FileWriter(file); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write("\r\n"); bufferedWriter.write("Hello,EveryOne"); bufferedWriter.flush(); } } |
字符流案例
登陆案例
package com.cloud.reader; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class Demo3 { static Scanner scanner = new Scanner(System.in); public static void main(String[] args) throws IOException { System.out.println("选择功能:A:注册,B:登陆"); String option = scanner.next(); if("a".equalsIgnoreCase(option)){ //注册 reg(); } else if("b".equalsIgnoreCase(option)){ //登陆 login(); } else{ System.out.println("输入错误..."); } } //登陆 @SuppressWarnings("resource") public static void login() throws IOException{ System.out.println("请输入用户名..."); String userName = scanner.next(); System.out.println("请输入密码..."); String password = scanner.next(); String info = userName+""+password; BufferedReader bufferedReader = new BufferedReader(new FileReader("F:\\a.txt")); String line = null; boolean isLogin = false; while((line = bufferedReader.readLine())!=null){ if(info.equals(line)){ isLogin = true; break; } } if(isLogin){ System.out.println("欢迎"+userName+"登陆成功"); }else{ System.out.println("不存在该用户请注册"); } } //注册 public static void reg() throws IOException{ System.out.println("请输入用户名:"); String userName = scanner.next(); System.out.println("请输入密码:"); String password = scanner.next(); String info = userName+""+password; File file = new File("F:\\a.txt"); FileWriter fileWriter = new FileWriter(file); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write(info); bufferedWriter.newLine(); bufferedWriter.close(); } } |
字符流拷贝文件
package com.cloud.reader; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Demo7 { public static void main(String[] args) throws IOException { // 字符流拷贝文件 BufferedReader bufferedReader = new BufferedReader(new FileReader("F:\\a.txt")); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("F:\\b.txt")); String line = null; while ((line = bufferedReader.readLine())!=null) { bufferedWriter.write(line); } bufferedWriter.close(); bufferedReader.close(); } } |
相关文章推荐
- 多线程设计模式——Half-sync/Half-async(半同步/半异步)模式
- javaweb简单二维码
- SpringMVC基本使用
- springMVC基本使用
- JAVA基础知识思维导图:unit02_面向对象(方法、构造器、对象),内存管理,访问控制
- JAVA基础知识思维导图:unit01_开发环境,变量,基本类型及转换,数学运算,流程控制,数组
- java之异常捕获及处理
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- 能够提高开发效率的Eclipse实用操作
- Spring学习笔记----JdbcTemplet和NamedParameterJdbcTemplate的使用
- 如何安装TestNG
- JAVA中常用的加密算法总结
- Java程序性能优化——设计优化
- [置顶] JDK下载、安装、环境变量配置图解(教程)
- 你不理解的Super与This
- 类,权限修饰符
- JavaEE学习笔记之SSH—Spring(2)
- java 中的 传值 与 传址
- javaee之sax解析和schema约束见解
- Java中的编码问题