服务器之家

服务器之家 > 正文

Java中流的有关知识点详解

时间:2021-07-14 15:15     来源/作者:mumu1998

什么是流?

流:程序和设备之间连接起来的一根用于数据传输的管道,流就是一根管道。

流的分类:

  • 四大基本抽象流(输入流,输出流,字符流,字节流)
  • 文件流
  • 缓冲流
  • 转换流
  • 数据流     流一定是类,但类不一定是流
  • print流
  • object流

按数据流的方向不同可以分为输入流和输出流。

按处理数据单位不同可以分为字节流和字符流。(一个字符是两个字节)

按功能不同可以分为节点(原始)流和处理(包裹)流。

               字节流         字符流
输入流      inputstream      reader
输出流      outputstream     writer

文件流:

读取一个文件内容并将其输出到显示器上,并统计读取出来的字节的个数。字符串来表示操作系统的文件路径时,我们可以使用\\和/两种方式来作为文件夹的路径分隔符。

什么是字节流?

fileinputstream       fileoutputstream

什么是字符流?

filereader       filewriter  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
eg:
import java.awt.*;
public class test{
   public static void main(string[] args){
    filereader fr=new fileread("d:\\share\\test.java");
    filewriter fw=new filewrite("d:/zhangsan.haha");
   int ch;
       ch=fr.read();
 while(-1 != ch){
     fw.write(ch); //将test文件中fr的数据读给程序,再将程序中的数据写给fw的zhangsan文件夹中
     ch=fr.read();
}
  fw.flush();
  fr.close();
  fw.close();
}
}

字符流和字节流的区别:

字节流可以完成所有格式文件的赋值

字符流值可以完成文本文件的复制,却无法完成视频格式文件的复制。

因为字节是不需要解码和编码的,将字节转化为字符才存在解码和编码的问题。

字节流可以从所有格式的设备中读取数据,但字符流只能从文本格式的设备中读写数据。如果通过一个字节流把文本文件的内容输出到显示器上,当输出汉字时就会出现乱码。

缓冲流:buffered

缓冲流就是带有缓冲区的输入输出流

缓冲流可以显著的减少我们对io访问的次数,保护我们的硬盘。

缓冲流本身就是处理流,必须依附于节点流,处理流是包裹在原始节点上的流,相当于包括在管道上的管道。

bufferedinputstream :带缓冲的输出流,允许一次向硬盘写入多个字节的数据

bufferedoutputstream :带缓冲区的输入流,允许一次向程序中读入多个字节的数据

bufferedwriter bufferedreader可以提高读写文本文件内容的速度

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
eg:
import java.awt.*;//带缓冲区的字节流处理文件的速度要快于不带缓冲区的字节流。
public class test{
   public static void main(string[] args){
   bufferedinputstream bis=new bufferedinputstream (new fileread("d:\\share\\test.java"));
    bufferedoutputstream bos= new bufferedoutputstream (new filewrite("d:/zhangsan.haha"));
byte[] buf=new byte[1024];
   int len;
     len=bis.read(buf);
 while(-1 != len){
     bos.write(buf,0,len );
     len=bis.read(buf);
}
  bos.flush();
  bos.close();
  bis.close();
}
}

转换流:

outputstreamwrite 流是把outputstrean流转换成writer流的流

inputstreamreader 流是把inputstrean流转换成reader流的流

print流:

print流只有输出,没有输入

printwriter 输出字符    printstream输出字节

printwriter 与 printstream的区别:

printwriter提供了printstream的所有打印方法,既可以封装outputstream,也能封装writer.而printstream只能封装outputstream类型的字节流。

标准输入输出的重定向:

编程实现将键盘输入的数据输入到a文件中,如果输入有误,则把出错信息输出到b文件中。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
eg:
public class test{
    public static void main(string[] args){
   printstream psout=null;
   printstream pserror=null;
  scanner sc=null;
     try{
     psout=new printstream("d:/out.txt");
     pserror=new printstream("d:/error.txt");
  sc=new scanner(system.in);
   int num;
   system.setout(psout);
  system.seterr(pserror);
  while(true){
   num=sc.nextint();
  system.out.println(num);
  }
catch(exception e){
  system.out.println("出错信息是:");
  e.printstacktrace();
}
}
}
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/mumu1998/article/details/81670581

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部

1130
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40