InputStream与OutputStream的比较

     我们所说的流,都是针对内存说的,比如为什么打印到屏幕上就是System.out.println();而从屏幕等待用户输入的却是System.in呢?因为对于内存来说,把字符串打印到屏幕上是从内存流向屏幕这个显示器的,也就是输出,而从屏幕等待用户输入呢?就是等待键盘将字符输入到内存中。


根本就不用死记硬背,当你遇到IO的时候,就想两件事,第一,我的内存是中心,第二看看流的方向(矢量)!


好吧,那么往硬盘上写文件是out还是in呢?别一看到“写”文件你就说in,那是望文生义,你看,写文件的流向,是 内存---------->硬盘 内存为中心,到硬盘,OK 用out 那么就是FileOutputStream、BufferedOutputStream 等等
那读文件呢?是 内存<---------------硬盘 那么就是in了 , 看清楚数据的流向就OK!


那我访问网络,看网页是什么呢 网络--------------->内存 是in 因为我们访问页面是要抓取该页面得一个html文件,那我要是在网络上输入帐号密码登陆呢? 是不是内存的东西要写到该服务器上呢,所以当然是out了!


同样socket编程用到更多的IO,这里分别用Server(服务器端)和Client(客户端)来说明


Server: 遇到请求,网络----->内存 IN   服务器应答, 内存------->网络 OUT
----------------------------------------------------------------------------------------------
Client: 请求服务,    内存----->网络 OUT 服务器应答, 网络------->内存 IN



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,inputstreamoutputstream是常用于文件操作的类。Inputstream是用来读取文件数据的,Outputstream则是用来写入文件数据的。File类则是用来表示文件或目录的抽象表示。 要实现inputstreamoutputstream及file间的互转,需要使用Java IO中的一些方法。其中,FileInputStream和FileOutputStream用于将文件与inputstreamoutputstream进行互转换。FileReader和FileWriter用于将字符数据与inputstreamoutputstream进行互转换。另外,ByteArrayInputStream和ByteArrayOutputStream用于在内存中进行数据流操作。 以FileInputStream和FileOutputStream为例,可以通过以下步骤实现inputstream与file及outputstream间的转换: 1.创建一个FileInputStream对象,将要读取的文件传递给构造函数。 2.通过read()方法读取文件中的数据。 3.创建一个FileOutputStream对象,将要写入的文件传递给构造函数。 4.通过write()方法将读取到的数据写入到输出流中。 以下是代码示例: ``` import java.io.*; public class FileOperation { public static void main(String args[]) { try { //创建一个输入流 FileInputStream in = new FileInputStream("input.txt"); // 读取第一个字节 int c = in.read(); while(c != -1) { System.out.print((char)c); //读取下一个字节 c = in.read(); } //关闭输入流 in.close(); //创建输出流 FileOutputStream out =new FileOutputStream("output.txt"); //写入数据 String str = "Hello Java Programming!"; byte[] bytes = str.getBytes(); out.write(bytes); //关闭输出流 out.close(); } catch (IOException e) { System.out.println("IOException"); } } } ``` 在上面的示例中,程序首先通过FileInputStream读取了一个文件的内容,然后通过FileOutputStream将读取到的内容写入到了另一个文件中。 总之,通过Java IO的各种操作,可以很方便地实现inputstreamoutputstream及file间的互转。这些方法在读写文件、网络编程等方面都有广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值