[黑马程序员]8 JAVA基础-IO流
来源:互联网 发布:陈欣怡药检呈阳性知乎 编辑:程序博客网 时间:2024/06/15 10:14
——- android培训、java培训、期待与您交流! –
IO流概念
IO流是用于处理数据传输的集合。
流有关的类和接口:
IO流体系:
IO流的分类
- 根据处理数据类型的不同分为:字符流和字节流
- 根据数据流向不同分为:输入流和输出流
字符流
package humiao;/** * 在硬盘创建一个文件,并写入一些数据 * 思路 * 1, 字节还是是字符?字符 * 2, 输入还是输出? Reder OR Writer Writer * 3, 操作文件有一个专用的字符输出流,OutputSteamWriter的子类FileWriter * @author HM * */ import java.io.*;public class FileWriterDemo { public static void main(String[] args) { //在当前路径创建一个名为“demo.txt"的文件,如果以存在将被覆盖 FileWriter fw = null; try { //路径反斜杠需要写两个。 fw = new FileWriter("c:\\demo.txt"); //将字符串写入OutputStream fw.write("abcdefghjklmnopqrstuvwxyz"); //刷新OutputStream流 fw.flush(); //关闭流; } catch(IOException e) { System.out.println(e.toString()); } finally { try { fw.close(); } catch(IOException e) { System.out.println(e.toString()); } } }}
续写文件
package humiao;/** * 续写文件 */import java.io.FileWriter;import java.io.IOException;/** * 对文件续写 * @author HM * */public class FileWriterDemo3 { public static void main(String[] agrs) { FileWriter fw = null; try { fw = new FileWriter("c:\\demo.txt",true); fw.write("\r\n我......"); } catch(IOException e) { e.printStackTrace(); } finally { try { fw.close(); } catch(IOException e) { e.printStackTrace(); } } }}
package humiao;
/**
* 读取c盘下的一个.java文件 存入到另一个文件
*/
import java.io.*;
public class FieldReader {
public static void main(String[] agrs) throws IOException
{
copy();} public static void copy() { FileReader fr = null; FileWriter fw = null; try { fr = new FileReader("c:/TemplateDemo.java"); fw = new FileWriter("c:/demo.txt"); char[] buf = new char[1024]; int len = 0; while((len = fr.read(buf)) != -1) { fw.write(buf); System.out.print("OK"); } } catch(IOException e) { throw new RuntimeException("读写失败"); } finally { if( fr != null) try { fr.close(); } catch(IOException e){} if( fw != null) try { fw.close(); } catch(IOException e){} } }
}
利用字符流中的BufferedReader BufferedWriter copy文件。
import java.io.*;
/** * 通过文件缓冲流复制文件 * @author HM * */public class CopyTextByBuf { public static void main(String[] args) { copy(); } public static void copy() { BufferedReader bfr = null; BufferedWriter bfw = null; try { bfr = new BufferedReader(new FileReader("c:/TemplateDemo.java")); bfw = new BufferedWriter(new FileWriter("c:/demo.txt")); String line = null; while((line = bfr.readLine())!= null) { bfw.write(line); bfw.newLine(); bfw.flush(); } } catch (IOException e) { throw new RuntimeException("读写失败"); } finally { try{ if(bfr != null) bfr.close(); } catch(IOException e) { throw new RuntimeException("缓冲读取流关闭失败"); } try{ if(bfw != null) bfw.close(); } catch(IOException e) { throw new RuntimeException("缓冲写入流关闭失败"); } } }}
装饰设计模式
当可以对一个体系中的多个子类进行通用功能增强时。可以将通用功能描述成为一个类,继承此体系的父类,通过多态接收各个子类型。实例化此类即可增强功能。
class Coder{ public static void sayHello() { System.out.println("meizi ,nihao @.@"); }}class SuperCoder{ private Coder m; SuperMan(Coder m) { this.m = m; } public static void superSayHello() { m.sayHello(); System.out.println("gen wo xue zuo cai ba"); }}
LineNumberReader
import java.io.*;class MyLineNumberReader{ private Reader in = null; private int lineNumber; MyLineNumberReader(Reader in) { this.in = in; } public void setLineNumber (int lineNumber) { this.lineNumber = lineNumber; } public int getLineNumber() { return lineNumber; } public String myReadLine()throws IOException { lineNumber++; StringBuilder sb = new StringBuilder(); int ch = 0; while((ch = in.read()) != -1) { if(ch == '\r') continue; if(ch == '\n') return sb.toString(); else sb.append((char) ch); } if(sb.length() != 0) return sb.toString(); return null; } public void myClose() throws IOException { in.close(); }}
字节流
InputStream:是表示字节输入流的所有类的超类。
下层体系
- |— FileInputStream:从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
- |— FilterInputStream:包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。
- |— BufferedInputStream:该类实现缓冲的输入流。
OutputStream:此抽象类是表示输出字节流的所有类的超类。
下层体系
- |— FileOutputStream:文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。
- |— FilterOutputStream:此类是过滤输出流的所有类的超类。
- |— BufferedOutputStream:该类实现缓冲的输出流。
- [黑马程序员]8 JAVA基础-IO流
- 黑马程序员-java基础 io字符流
- 黑马程序员-java基础 io字节流
- 黑马程序员--JAVA基础之IO流
- 黑马程序员JAVA基础-IO流
- 黑马程序员 Java基础 ---> IO流
- 黑马程序员 JAVA基础<五> IO流
- 黑马程序员-JAVA基础-IO流
- 黑马程序员 java基础回顾---IO流
- 黑马程序员 Java基础----IO流(2)
- 黑马程序员---java基础---5IO流
- 黑马程序员----Java基础之IO流
- 黑马程序员---Java基础总结--IO流
- 黑马程序员-java基础-IO流
- 黑马程序员--JAVA基础之IO流
- 黑马程序员-------java基础 IO流<一>
- 黑马程序员-----java基础IO流<二>
- 黑马程序员-----java基础IO流<三>
- 使用Android Stuio自定义属性
- 想要1分好难
- leetcode-148 Sort List
- [Android]实现带显示密码按钮的EditText(无内存泄露)
- java中JVM加载类的时机
- [黑马程序员]8 JAVA基础-IO流
- Java程序如何生成Jar、exe及安装文件
- 多线程——安全问题
- PowerDesigner 反向 PostgreSQL 时 Unable to list the columns. SQLSTATE =22003 的解决方法
- java文件读写操作大全
- puppet 安装及应用
- 4.25
- TPL Part3 -- 数据共享
- 第七周 课后实践:项目一——图形用户界面(GUI)应用程序开发初体验