Java--IO
来源:互联网 发布:凌鹏软件 编辑:程序博客网 时间:2024/06/17 03:01
流之间的桥梁:
InputStreamReader: 字节流到字符流的桥梁 解码
OutputStreamWriter:字符到字节的桥梁,编码
流的操作规律
要想知道开发时用哪些对象,只要通过四个明确即可
1.明确源和目的
源 InputStream Reader
目的 OutputStream Writer
2.明确数据是否为纯文本
源
是纯文本 Reader
否 InputStream
目的:
是 Writer
否 OutputStream
3.明确具体的设备
源设备:
硬盘:File
键盘:System.in
内存:数组
网络:Socket流
目的设备:
硬盘:File
控制台:System.out
内存:数组
网络:
Socket流
4.是否需要额外其他功能:
1.是否需要高效(缓冲区)
是:buffer
文件的拷贝:
import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;public class CopyFile {public static void main(String[] args) throws IOException {try {Reader r=new FileReader("e:\\demo2.txt");Writer w=new FileWriter("F:\\demo.txt");int x=0;while((x=r.read())!=-1) //无参的read方法返回的是该字符的编码 a返回的是97{w.write(x); //写入单个字符}r.close();w.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
方式二:
import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;public class CopyFile2 {public static void main(String[] args) throws IOException {try {Reader r=new FileReader("e:\\demo2.txt");Writer w=new FileWriter("F:\\demo2.txt");int length=0;int i=0;char[] ch=new char[5];while((length=r.read(ch))!=-1) //每一次read 把char[5]装满 同时判断有没有read完,没read完返回读的字符数,这里是5{w.write(ch, 0, length); //把char[5]的第0个元素到第lengh-1个元素写入}r.close();w.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
方式三:
使用BufferedReader和BufferedWriter
import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;public class BufferWriter {public static void main(String[] args) throws IOException {try {Reader r=new FileReader("e:\\demo2.txt");Writer w=new FileWriter("F:\\demo3.txt");BufferedReader br=new BufferedReader(r);BufferedWriter bw=new BufferedWriter(w);int ch=0;while((ch=br.read())!=-1){bw.write(ch);}br.close();bw.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
方式四:
使用字符流和字节流的转换
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.Reader;import java.io.Writer;public class Readkey {public static void main(String[] args) throws IOException {InputStream in=new FileInputStream("e:\\demo2.txt");OutputStream out=new FileOutputStream("F:\\demo5.txt") ;BufferedReader br=new BufferedReader(new InputStreamReader(in));//InputStreamReader把输入字节流转换成输入字符流BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(out));String line=null;while((line=br.readLine())!=null){bw.write(line);bw.newLine();}br.close();bw.close();}}
在控制台 写入输入 输出到文本文件里:
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.Writer;public class SystemInToTxt {public static void main(String[] args) throws IOException {InputStream in=System.in;Writer w=new FileWriter("E:\\xieru.txt");BufferedReader br=new BufferedReader(new InputStreamReader(in));BufferedWriter bw=new BufferedWriter(w);String line=null;while ((line=br.readLine())!=null) {if("over".equals(line))break;bw.write(line);bw.newLine();}br.close();bw.flush();bw.close();}}
阅读全文
0 0
- 【Java-IO】IO入门
- Java IO:IO框架
- 【IO】java IO 总结
- java IO
- IO.java
- JAVA IO
- JAVA IO
- java IO
- java io
- JAVA IO
- java IO
- java IO
- java io
- java io
- java io
- java IO
- java IO
- java io
- Android SparseArray 分析
- 前端面试篇,一道大题
- Java面向对象
- Git常用命令总结
- poll
- Java--IO
- flash swf接受外部参数 视频网站播放原理
- 迁移项目中mysq中遇到的问题
- 如何学习自动化测试
- android 权限封装 看了好多权限封装基本都是copy 忍不住自己折腾了一番
- iOS 将控件设置为一边圆角一边直角
- nginx+tomcat配置集群负载均衡
- java nio 4
- 程序员应该看的书