----------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. JavaScript(九)正则表达式

    RegExp 正则表达式 ,一般被创建出来就是用于 字符串的替换 查找方法中的 1.创建正则表达式 var reg = /pattern/flag; // 字面量 var reg = new RegE ...

  2. PHP开发心得四

    1,php返回给html页面的Json数据不能含有回车符 某次用php编写查询数据库数据,以json格式返回给前端页面js文件,js文件以angularJS的函数调用处理的方式进行数据显示,但数据返回 ...

  3. PHP开发心得三

    1, JSON在调用json_decode前要检查其中是否含有反斜杠“\”等特殊字符 比如下面这段代码,返回的就是空值,非常坑爹吧. $res = {"Ret":"1&q ...

  4. CUDA 显存操作:CUDA支持的C++11

    CUDA9的编译器和语言改进 使用CUDA 9,nvcc编译器增加了对C ++ 14的支持,其中包括新功能 通用的lambda表达式,其中使用auto关键字代替参数类型; auto lambda = ...

  5. discuz x3论坛搬家换虚拟主机完美使用教程 亲测可行 附操作步骤

    第一步:备份网站数据进入后台—站长—数据库—备份,数据备份类型选择“Discuz!和 UCenter数据”,备份成功以后,数据自动保存在data文件夹下. 第二步:网站文件下载 把整个网站文件打包(虚 ...

  6. 网络编程基础_4.2TCP-客户端

    TCP-客户端 #include <stdio.h> // 1. 包含必要的头文件和库, 必须位于 windows之前 #include <WinSock2.h> #pragm ...

  7. QuickClip—界面原型设计

    1.需不需要设置用户登录/注册页? QuickClip没有提供该项功能.因为本产品为单纯的移动端视频编辑软件,是一个工具类软件.而且移动端软件本就追求的是方便快捷.简单易用,本产品不需要标识使用者的身 ...

  8. ThinkPHP---插件highcharts

    [一]概论 (1)介绍 基于jquery开发的国外图标插件,统计图,折线图,饼状图等常常用到. 国内也有一款类似插件echarts,由百度开发. (2)官网:www.highcharts.com    ...

  9. 大理石在哪儿(Where is the Marble?,Uva 10474)

    现有N个大理石,每个大理石上写了一个非负整数.首先把各数从小到大排序,然后回 答Q个问题.每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上 写着x.排序后的大理石从左到右编号为1 ...

  10. 山建校赛B题公式证明

    原题 证明