----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 
一、

一、IO流的三种分类方式

1.按流的方向分为:输入流和输出流

2.按流的数据单位不同分为:字节流和字符流

3.按流的功能不同分为:节点流和处理流

    二、IO流的四大抽象类:

字符流:Reader Writer

字节流:InputStream(读数据)

OutputStream(写数据)

    三、InputStream的基本方法

int read() throws IOException 读取一个字节以整数形式返回,假设返回-1已到输入流的末尾

void close() throws IOException 关闭流释放内存资源

long skip(long n) throws IOException 跳过n个字节不读

    四、OutputStream的基本方法

void write(int b) throws IOException 向输出流写入一个字节数据

void flush() throws IOException 将输出流中缓冲的数据所有写出到目的地

    五、Writer的基本方法

void write(int c) throws IOException 向输出流写入一个字符数据

void write(String str) throws IOException将一个字符串中的字符写入到输出流

void write(String str。int offset,int length)

将一个字符串从offset開始的length个字符写入到输出流

void flush() throws IOException

将输出流中缓冲的数据所有写出到目的地

    六、Reader的基本方法

代码具体解释:

System.in

int read() throws IOException 读取一个字符以整数形式返回。假设返回-1已到输入流的末尾

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

/*

 * System.in是InputStream static final的,包括了多态,叫同步式或者堵塞式

 * 读取ASCII和二进制文件(图片)。而字母就是ASCII字符(个人理解)。

 */

public class TestSystemIn {

 public static void main(String[] args) {

  InputStreamReader isr = new InputStreamReader(System.in);

  BufferedReader br = new BufferedReader(isr);//有readline

  String s = null;

  try {

   s = br.readLine();

   while(s!=null) {

    if(s.equalsIgnoreCase("exit")) {

     break;

    }

    System.out.println(s.toUpperCase());

    s = br.readLine();

   }

   br.close();

  }catch (IOException e) {

   e.printStackTrace();

  }

 }

}

八,FileInputStream

import java.io.*;

public class TestFileInputStream {

 public static void main(String[] args) {

  FileInputStream in = null;

  try {

   in = new FileInputStream("e:/1.txt");

  }catch(FileNotFoundException e) {

   System.out.println("找不到文件");

   System.exit(-1);

  }

  //以下表示找到了文件

  int tag = 0;

  try {

   long num = 0;

   while((tag = in.read())!=-1) {

    //read是字节流,若是有汉字就显示不正常了,使用reader就攻克了

    System.out.print((char)tag);

    num++;

   }

   in.close();

   System.out.println();

   System.out.println("共读取了" + num + "字符");

  }catch(IOException e1) {//read和close都会抛出IOException

   System.out.println("文件读取错误");

   System.exit(-1);

  }

 }

}

黑马程序猿——JAVA基础——IO流的更多相关文章

  1. 黑马程序猿————Java基础日常笔记---反射与正則表達式

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序猿----Java基础日常笔记---反射与正則表達式 1.1反射 反射的理解和作用: 首 ...

  2. 黑马程序猿——————java基础

    一.软件开发 软件是什么? 软件是简单的来说,计算机数据和指令的集合,数据(比方年龄,性别).指令及时告诉计算机怎样对他进行处理.计算机但是没有人那么聪明啊! 二.图形化界面(GUI),主要特点就是. ...

  3. 黑马程序猿——JAVA基础——集合

    ----------android培训.java培训.java学习型技术博客.期待与您交流.------------  一.关于java中的集合类        首先看一下,大致的框架流程图     ...

  4. 黑马程序猿——25,打印流,合并流,对象序列化,管道流,RandomAccessFile

    ------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培 ...

  5. Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)

    Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...

  6. Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)

    Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...

  7. Java基础-IO流对象之字节流(Stream)

    Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...

  8. Java基础-IO流对象之File类

    Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下 ...

  9. Java基础IO流(二)字节流小案例

    JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...

随机推荐

  1. Java设置全局热键——第三方包jintellitype实现

    Java原生API并不支持为应用程序设置全局热键.要实现全局热键,需要用JNI方式实现,这就涉及到编写C/C++代码,这对于大多数不熟悉C/C++的javaer来说,有点困难.不过幸好,国外有人已经实 ...

  2. windows多线程应用编程注意事项

    1,资源争用保护 对于文件操作.界面资源.GDI操作等一般由主线程完成的任务,要加以顺序化处理(serialization),即一个资源一次只能由一个线程访问,多个线程同时访问将导致错误. 方法一般可 ...

  3. Java Servlet DAO实践(二)

    Java Servlet DAO实践(二) DAO连接类 package com.seller.servlets.dao; import java.sql.*; public class DataBa ...

  4. 并发编程学习笔记(14)----ThreadPoolExecutor(线程池)的使用及原理

    1. 概述 1.1 什么是线程池 与jdbc连接池类似,在创建线程池或销毁线程时,会消耗大量的系统资源,因此在java中提出了线程池的概念,预先创建好固定数量的线程,当有任务需要线程去执行时,不用再去 ...

  5. 模拟title提示!

    转载http://wouit.com/post/2013-08-15/40052169981html <a href="#" tishi="常见的网页新闻循环跳动显 ...

  6. Apache Maven 3.0.3 (yum) 安裝 (CentOS 6.4 x64)

    介紹http://maven.apache.org/ Maven是一個專案的開發,管理和綜合工具. 下載http://maven.apache.org/download.cgi 參考http://ma ...

  7. 观察者模式在Foundation框架通知中的应用

    GitHub传送门 1.何为观察者模式? 观察者设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新. 举个简单的例子:你和你的舍友都订阅了 ...

  8. TWaver动画之雷达扫描效果

    UI和功能是好的产品的两个重要因素,很多产品往往只注重功能上的设计,而忽略了UI.在这个“看脸”的时代,就算产品的功能很强大,如果UI跟不上步伐,你的产品都会在客户心中大打折扣.做安全和监控的项目中经 ...

  9. 服务器做ssh免秘钥登陆

    集群内服务器做非root用户免秘钥登陆:1.node1新建用户abc1,制作公钥.私钥(一路回车键即可)ssh-keygen –t rsa将自动在/home/abc1/.ssh/目录下创建公私钥文件如 ...

  10. Django基础——ORM字段和字段参数

    ORM概念: 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象( 1. 不同的程序员写的SQL水平参差不齐 2. ...