IO2
来源:互联网 发布:淘宝客服在家上班 编辑:程序博客网 时间:2024/06/06 01:10
1:IO流
(1)分类(理解)
字节流:
读取数据:
InputStream
int read():一次读取一个字节
int read(byte[] bys):一次读取一个字节数字
|--FileInputStream
|--BufferedInputStream
写入数据:
OutputStream
void write(int by):一次写入一个字节
void write(byte[] bys,int index,int len)
一次写入一个字节数组的一部分。
|--FileOutputStream
|--BufferedOutputStream
字符流:
读取数据:
Reader
int read():一次读取一个字符
int read(char[] chs):一次读取一个字符数组
|--FileReader
|--BufferedReader
String readLine():一次读取一行数据
写入数据:
Writer
void write(int ch):一次写入一个字符
void write(char[] chs,int index,int len):
一次写入一个字符数组的一部分。
|--FileWriter
|--BufferedWriter
void newLine():根据系统确定换行符
(2)复制操作(掌握)
用记事本打开能读懂吗?
能:
字符流
想高效吗?
想:高效读写
最常用一次读写一个字符串
不想:基本读写
不能:
字节流
想高效吗?
想:高效读写
最常用第四种(复制MP3的代码里面有)
不想:基本读写
(3)案例:复制文本文件(掌握)
数据源:
c:\\a.txt
目的地:
d:\\b.txt
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileWriter;
import java.io.BufferedWriter;
public class CopyFile
{
public static void main(String[] args) throws IOException
{
//封装数据源
BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));
//封装目的地
BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\b.txt"));
//基本读写
//方式1
/*
int ch = 0;
while((ch=br.read())!=-1)
{
bw.write(ch);
}
*/
//方式2
/*
char[] chs = new char[1024];
int len = 0;
while((len=br.read(chs))!=-1)
{
bw.write(chs,0,len);
bw.flush();
}
*/
//方式3
String line = null;
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
//释放资源
bw.close();
br.close();
}
}
(2)案例:复制图片(掌握)
数据源:
c:\\a.jpg
目的地:
d:\\b.jpg
import java.io.IOException;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
public class CopyJpg
{
public static void main(String[] args) throws IOException
{
//封装数据源
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("c:\\a.jpg"));
//封装目的地
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\b.jpg"));
//基本读写
//方式1
/*
int by = 0;
while((by=bis.read())!=-1)
{
bos.write(by);
}
*/
//方式2
byte[] bys = new byte[1024];
int len = 0;
while((len=bis.read(bys))!=-1)
{
bos.write(bys,0,len);
}
//释放资源
bos.close();
bis.close();
}
}
2:转换流(理解)
(1)从字节流到字符流
System.in -- InputStreamReader -- BufferedReader
(2)从字符流到字节流
(理解)
BufferedWriter -- OutputStreamWriter -- System.out
(代码操作)
System.out -- OutputStreamWriter -- BufferedWriter
(3)转换流的使用
如果是文本文件,用字节流操作的时候,可以通过转换流进行包装。
如果是图片,音频,视频这样的文件,即使用转换流包装了,将来一样出问题。
(4)案例:(理解)
A:键盘录入数据 -- 文本文件
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
String line = null;
while((line=br.readLine())!=null)
{
if("886".equals(line))
{
break;
}
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
B:文本文件 --控制台显示
BufferedReader br = new BufferedReader(new FileReader("bw.txt"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
3:案例:
复制单级目录(理解)
(1)分类(理解)
字节流:
读取数据:
InputStream
int read():一次读取一个字节
int read(byte[] bys):一次读取一个字节数字
|--FileInputStream
|--BufferedInputStream
写入数据:
OutputStream
void write(int by):一次写入一个字节
void write(byte[] bys,int index,int len)
一次写入一个字节数组的一部分。
|--FileOutputStream
|--BufferedOutputStream
字符流:
读取数据:
Reader
int read():一次读取一个字符
int read(char[] chs):一次读取一个字符数组
|--FileReader
|--BufferedReader
String readLine():一次读取一行数据
写入数据:
Writer
void write(int ch):一次写入一个字符
void write(char[] chs,int index,int len):
一次写入一个字符数组的一部分。
|--FileWriter
|--BufferedWriter
void newLine():根据系统确定换行符
(2)复制操作(掌握)
用记事本打开能读懂吗?
能:
字符流
想高效吗?
想:高效读写
最常用一次读写一个字符串
不想:基本读写
不能:
字节流
想高效吗?
想:高效读写
最常用第四种(复制MP3的代码里面有)
不想:基本读写
(3)案例:复制文本文件(掌握)
数据源:
c:\\a.txt
目的地:
d:\\b.txt
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileWriter;
import java.io.BufferedWriter;
public class CopyFile
{
public static void main(String[] args) throws IOException
{
//封装数据源
BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));
//封装目的地
BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\b.txt"));
//基本读写
//方式1
/*
int ch = 0;
while((ch=br.read())!=-1)
{
bw.write(ch);
}
*/
//方式2
/*
char[] chs = new char[1024];
int len = 0;
while((len=br.read(chs))!=-1)
{
bw.write(chs,0,len);
bw.flush();
}
*/
//方式3
String line = null;
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
//释放资源
bw.close();
br.close();
}
}
(2)案例:复制图片(掌握)
数据源:
c:\\a.jpg
目的地:
d:\\b.jpg
import java.io.IOException;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
public class CopyJpg
{
public static void main(String[] args) throws IOException
{
//封装数据源
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("c:\\a.jpg"));
//封装目的地
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\b.jpg"));
//基本读写
//方式1
/*
int by = 0;
while((by=bis.read())!=-1)
{
bos.write(by);
}
*/
//方式2
byte[] bys = new byte[1024];
int len = 0;
while((len=bis.read(bys))!=-1)
{
bos.write(bys,0,len);
}
//释放资源
bos.close();
bis.close();
}
}
2:转换流(理解)
(1)从字节流到字符流
System.in -- InputStreamReader -- BufferedReader
(2)从字符流到字节流
(理解)
BufferedWriter -- OutputStreamWriter -- System.out
(代码操作)
System.out -- OutputStreamWriter -- BufferedWriter
(3)转换流的使用
如果是文本文件,用字节流操作的时候,可以通过转换流进行包装。
如果是图片,音频,视频这样的文件,即使用转换流包装了,将来一样出问题。
(4)案例:(理解)
A:键盘录入数据 -- 文本文件
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
String line = null;
while((line=br.readLine())!=null)
{
if("886".equals(line))
{
break;
}
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
B:文本文件 --控制台显示
BufferedReader br = new BufferedReader(new FileReader("bw.txt"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
3:案例:
复制单级目录(理解)
- io2
- IO2
- IO2
- java io2
- Java IO2
- 黑马程序员 Java基础 IO2
- NIO - java new io2 since jdk7
- 黑马程序员---Java学习笔记之io2
- 黑马程序员———IO2
- 黑马程序员—Java基础—IO2
- java基础视频需要记忆的部分备忘 - IO2
- 黑马程序员---IO2(缓冲区、装饰设计模式、转换流)
- pat1064
- Stones (2013.09.15周赛)
- 美团网2014校招笔试题及解答(长沙站+哈尔滨站)
- 递归和IO
- 百度2014校园招聘笔试题(成都站,软件研发岗)——2013.09.21
- IO2
- 为JSP自定义你自己的标签吧
- 冒泡排序
- IO3
- 2013年九月暴风影音校招笔试题
- CUDA写显卡内存的FFT问题。
- A strange lift(2013.09.15)
- [C语言]菜鸟的一些理解-堆管理
- 二叉平衡树理论分析