输入输出流
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA IO
一)File 类是IO类里唯一操作文件类构造方法为: new File(String filePath)
常用的方法: f.exists() f.delete() f.createFile() f.mkdirs() File[] f = f.listFile() –显示文件名和文件路径String[] s = f.list() --- 显示文件名;
二) OutPutStream 字节输出流–抽象类子类:FileOutPutStream -- 一般报异常是FileNotFoundException
OutPutStream outS = new FileOutPutStream(File f);
OutPutStream outS = new FileOutPutStream(File f,Boolean b);
当b =true 时表示在文件末尾追加内容这样前面写的内容任然在.
以下就是字节输出流把字符串文字输出到bfh.txt文件里
String pathname = "e:/bfh.txt ";
File f = new File(pathname);
OutputStream out = new FileOutputStream(f);
String str = "祝贺百均成公司sfq";
byte[] b = str.getBytes(); ---- 字节流只能以字节数组形式输出
try {
out.write(b);
for(int i =0;i { out.write(b[i]); } } catch (IOException e) { e.printStackTrace(); }finally{ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } 二)InPutStream字节输入流同OutPutStream InputStream in = new FileInputStream(f); //byte[] b = new byte[(int)f.length()]; byte[] b = new byte[1024]; try { in.read(); System.out.println("内容为:"+new String(b)); } catch (IOException e) { e.printStackTrace(); }finally{ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } 三) Writer字符输出流是抽象类调用则调用FileWriter 异常是IOException Writer w = new FileWriter(File f); Writer w = new FileWriter(File f,Boolean b); 当b=true时在后面追加显示写入的内容 try { String str = "白福虎sssss"; Writer w = new FileWriter(f); w.write(str); w.close(); } catch (IOException e) { e.printStackTrace(); } 四)Reader 字符输入流同上 Reader r = new FileReader(f); //char[] c = new char[(char)f.length()]; char[] c = new char[1024]; try { int len = r.read(c); r.close(); System.out.println("内容为:"+new String(c,0,len)); } catch (IOException e) { e.printStackTrace(); } 五)字节流和字符流区别 字节主要是读一些如音乐文件、视频文件(可以理解那些比较细腻精度要求高的文件),而字符流就相对宽松一些了:如文本文件…… 字符流如果不关闭则需要强制刷新缓存才能把内容输出来out.flush(); 以下是一个文件拷贝功能代码 String pathname1 = "e:/sfq.txt"; String pathname2 = "e:/bfh.txt"; File f1= new File(pathname1); //源文件 File f2 = new File(pathname2); //目标文件 if(!f1.exists()) { System.out.println("源文件不存在!"); System.exit(1); } InputStream inPut = new FileInputStream(f1); // 读取源文件里的内容 OutputStream outPut = new FileOutputStream(f2); // 写入目标文件里的内容 if(inPut != null && outPut != null) { int temp = 0; try { while((temp = inPut.read())!= -1) { outPut.write(temp); } } catch (IOException e) { e.printStackTrace(); } } 六) OutputStreamWriter 字符流转向字节流是字符流Writer的子类 InputStreamReader 字节流转向字符流 try { Writer w = new OutputStreamWriter(new FileOutputStream(f)); Reader r = new InputStreamReader(new FileInputStream(f)); w.write("hello word"); w.flush(); w.close(); char[] c =new char[1024]; int len = r.read(c); System.out.println(new String(c,0,len)); } catch (IOException e) { e.printStackTrace(); } 七)BufferedReader 缓存流