如何判断是输入还是输出?
答:以程序为中心。
如何判断是解码还是编码?
答:以程序为中心。程序只懂二进制,所以,以二进制转换成字符是解码,字符转换成二进制是编码。
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("文件不存在!");
}
}
}

最新文章

  1. Base64加密与MD5的区别?
  2. PowerDesigner设计表时显示注释选项
  3. swift选择类或结构体
  4. golang 简易聊天
  5. PropertyChangedCallback 只触发了一次?
  6. Node.app – 用于 iOS App 开发的 Node.js 解释器
  7. Codeforces Round #Pi (Div. 2) E. President and Roads 最短路+桥
  8. LINUX开机启动过程
  9. MySQL源码之mysqld启动
  10. Hibernate查询之Example查询
  11. Html内容超出标记宽度后自动隐藏
  12. Eclipse和debug的一些快捷键
  13. MVC无刷新查询,PagedList分页控件使用,导出Excel
  14. python数据库学习--Mysql
  15. 学习TensorFlow,线性回归模型
  16. Netty源码—七、内存释放
  17. CSRF & CORS
  18. mysql添加字段语句
  19. linux check
  20. 新飞电器的BI建设案例

热门文章

  1. Android应用如何打包?
  2. Codeforces 585D Lizard Era: Beginning | 折半搜索
  3. tornado获取application/json类型的入参
  4. mac 安装 mysql 配置
  5. Html5学习进阶二 画布
  6. Xen虚拟化技术中PV和HVM的区别
  7. 小知识:SPI四种模式区别【转】
  8. VirtualBox虚拟机安装CentOS 7
  9. phpstudy无法访问主页,提示You don't have permission to access / on this server解决办法
  10. AC日记——玻璃切割 51nod 1562