程序小白---IO流之输入输出流
没错又是我!!!今天继续写博客
今天学了IO流
一:那么首先什么是IO流?
首先我来说一下流的概念
1.什么是流?
流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。
数据源可以是文件,内存或者网络等。同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。
流的创建是为了更方便地处理数据的输入输出。
了解了流我们就可以进行输入输出流的概念进行理解了
流分为字节流和字符流。字节流也称为原始数据,需要用户读入后进行相应的编码转换。
而字符流的实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自动转换成字符。
字节流由InputStream和OutputStream处理,而字符流由Reader和Writer处理。
Reader和Writer是Java后加入的处理类,出于让数据的处理更方便的目的。
按操作数据分为:字节流和字符流.
按流的方向分为:输入和输出流.
流的单位不同:字节流、字符流
流的功能不同:节点流、处理流
话不多说上图啦:
下面结合File文件类的知识点来进行一些操作:
(1):将文本的内容读取到控制台
try {
FileInputStream input = new FileInputStream("d://lenovo//hehe.txt");
int n =input.read();
while(n>-1){
System.out.print((char)n);
n = input.read();
}
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
(2):将Strin里的字符串写入到文本
String a = "hello xiaoyumi! 小玉米";
try {
FileOutputStream out = new FileOutputStream("d://lenovo//hehe.txt");
out.write(a.getBytes());
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
(3):将一个txt里的文件放入到另一个txt(复制的原理)
try {
FileInputStream input = new FileInputStream("d://lenovo//hehe.txt");
FileOutputStream out = new FileOutputStream("d://lenovo//haha.txt");
int n = input.read();
while(n!=-1){
out.write(n);
n= input.read();
}
out.close();
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
声明:部分内容来自http://blog.****.net/andloves/article/details/48787707