如何判断是输入还是输出?
答:以程序为中心。
如何判断是解码还是编码?
答:以程序为中心。程序只懂二进制,所以,以二进制转换成字符是解码,字符转换成二进制是编码。
1.
首先,File 它是给程序跟文件或文件夹建立的一个联系。它不是代表那个路径下的文件,只是一个联系。不能对文件进行操作。而且也不能判断该文件是否存在。。
File file=new File(path);
如:File file=new File("E:/text/a.jpg");
这行代码说的是:file给程序跟该目录下的文件a.jpg建立了一个联系。但是不能对文件进行操作。
(File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。)---来自jdk

2. InputStream-->FileInputStream
摘自jdk-->
public class FileInputStream extends InputStream
由此可知:
①、FileInputStream 是继承了InputStream抽象类。
②、FilterInputStream 包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。FilterInputStream 类本身只是简单地重写那些将所有请求传递给所包含输入流的 InputStream 的所有方法。FilterInputStream 的子类可进一步重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。
OutputStream-->FileOutputStream跟InputStream-->FileInputStream是一样的

2.(字节流)输入流、输出流的使用步骤:
①、建立联系:File file=new File(path);//跟文件建立一个联系
②、选择流:选择你需要的流,你是要输入流还是输出流。。如:InputStream-->FileInputStream /OutputStream-->FileOutputStream
③、操作:进行输入内容或者输出内容。
④、释放资源:关闭输入流或输出流。如果是输出流,要多写一个flush();强制刷新出去。
简单例子:

输入流:
1 package com.IO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/**
* 1.建立联系 File对象
* 2.选择流
* 3.操作
* 4.释放资源
* @author Administrator
*
*/
public class Demo01 {
public static void main(String[] args) {
File file=new File("f:/a.txt");//建立联系
InputStream is=null;//提升变量作用域,也就是让变量的作用域变大
if(file.exists()){
try {
is=new FileInputStream(file);
byte[] car=new byte[10];//缓冲数组
int len=0;//实际读取的大小
while(-1!=(len=is.read(car))){
String info=new String(car,0,len);
System.out.println(info);
}
} catch (FileNotFoundException e) {
System.out.println("文件找不到");
} catch (IOException e) {
System.out.println("读取文件失败");
}finally{
if(null!=is){
try {
is.close();
} catch (IOException e) {
System.out.println("关闭输入流失败");
}
}
}
}else{
try {
boolean flag=file.createNewFile();
System.out.println(flag?"成功":"失败");
} catch (IOException e) {
System.out.println("创建文件错误");
}
} }
} 输出流:
package com.IO;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Demo02 {
public static void main(String[] args) {
File file=new File("f:/a.txt");
OutputStream out=null;//提升变量作用域,也就是让变量的作用域变大
if(file.exists()){
try {
out=new FileOutputStream(file);
String str="very good!!! \r\n";
byte[] b=str.getBytes();//字符转换成字节数组
out.write(b);
out.flush();//强制刷新出去
} catch (FileNotFoundException e) {
System.out.println("文件没找到");
} catch (IOException e) {
System.out.println("输出内容发生错误");
}finally{
if(null!=out){
try {
out.close();
} catch (IOException e) {
System.out.println("关闭输出流失败");
}
}
}
}else{
System.out.println("文件不存在!");
}
}
}

IO流知识点的更多相关文章

  1. IO流知识点总结

    IO流的使用:(Input  OutPut)       输入输出流: 输入:将文件读到内存中 输出:将文件从内存输出到其他地方   IO技术的作用: 主要就是解决设备和设备之间的数据传输问题.比如: ...

  2. java IO流知识点总结

    I/O类库中使用“流”这个抽象概念.Java对设备中数据的操作是通过流的方式.表示任何有能力产出数据的数据源对象,或者是有能力接受数据的接收端对象.“流”屏蔽了实际的I/O设备中处理数据的细节.IO流 ...

  3. 2018.4.13 用java配置/生成Xml文件 结合IO流知识点

    自己创建本地文件Hello.txt 里面有数据 小明/23/增城/广东 小花/12/浦东/上海 StudentManager.java package com.lanqiao.dmeo7; impor ...

  4. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

    #Java基础测试 涉及知识点:数组,面向对象,重载,重写,继承,集合,排序,线程,文件流 一.多项选择题(可能是单选,也可能是多选) 1.下列标识符命名不合法的是(   D  ). A.$_Name ...

  5. java中IO流相关知识点

    (一) 下边使用outputStream字节输出流进行写操作 package zdbIO;import java.io.File;import java.io.FileNotFoundExceptio ...

  6. java IO流部分知识点

    IO流部分 IO流常用的有:字符流.字节流.缓冲流.序列化流.RandomAccessFile类等 1.字节流 FileInputStream/FileOutputStream BufferedInp ...

  7. 二十一、Java基础--------IO流之综合案例分析

    前三篇文章详细介绍了IO流体系所涉及的重点内容,为了帮助理解与学习,本片博客主要是分析一个与IO操作相关的题目. 例1:在我们观看视频时经常要关注的就是视频的时间长度,在学习了IO操作之后,就可以自己 ...

  8. 线程+IO流

    第十八天知识点总结 线程的停止: 1.停止一个线程,一般是通过一个变量来控制. 2.如果需要停止一个处于一个等待状态的线程,那么需要配合interrupt方法来完成 守护线程(后台线程):在一个进程中 ...

  9. IO流详解(半教材类型)

    这两天学习了IO流,整理了一些理论知识点,仅供参考. java流概述 一 流 从操作系统层面和文件系统,数据保存相关的是所有语言都具备的一个基本功能,java专门开发了一个包:java.io.*;ja ...

随机推荐

  1. weex & web app & vue

    weex & web app & vue https://weex-project.io/tools/playground.html https://weex.apache.org/ ...

  2. 【Luogu】P4284概率充电器(概率树形DP)

    题目链接 这题好神啊…… 设f[i]为i没电的概率,初始化$f[i]=1-q[i]$ 之后x的电有三个来源: 1.x自己有电 2.x的儿子给它传来了电 3.x的父亲给它传来了电 对于2和3操作分别做一 ...

  3. 湘潭邀请赛 2018 D Circular Coloring

    题意: 给一个环,环上有n+m个点.给n个点染成B,m个点染成W.求所有染色情况的每段长度乘积之和. 题解: 染成B的段数和染成W的段数是一样的(因为是环). 第一段是可以移动的,例如BBWWW移动为 ...

  4. [poj] 3690 Constellations || 矩阵hash

    原题 在大矩阵里找有几个小矩阵出现过,多组数据 将t个矩阵hash值放入multiset,再把大矩阵中每个hash值从multiset里扔出去,这样最后剩在multiset里的值就是没有找到的小矩阵, ...

  5. BZOJ1025 [SCOI2009]游戏 【置换群 + 背包dp】

    题目链接 BZOJ1025 题解 题意就是问一个\(1....n\)的排列在同一个置换不断重复下回到\(1...n\)可能需要的次数的个数 和置换群也没太大关系 我们只需知道同一个置换不断重复,实际上 ...

  6. BZOJ3143 [Hnoi2013]游走 【高斯消元】

    题目 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编 ...

  7. POJ2175:Evacuation Plan(消负圈)

    Evacuation Plan Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 5665Accepted: 1481Special J ...

  8. python登录qq

    登录qq的用的是get方法, 首先抓login_sig(某个包中的cookie),接着验证码的包(包含对验证码的校验),,最后计算一个p的加密算法,接着再get请求一个链接 https://ssl.p ...

  9. js 数组遍历

    map.filter.forEach.every.some http://www.runoob.com/jsref/jsref-obj-array.html 1.在字符串中使用 map 在一个Stri ...

  10. [bzoj2127]happiness——最小割

    这个题太恶心了...并不想继续做了... 本代码在bzoj上TLE! 大致说一下思路: 建立ST,首先由S连边(S,u,a)a代表学文的分数,连向T(u,T,b)b表示学理的分数,这样构造出了两个人独 ...