java网络编程中拿到源后的写入动作

Posted 因吹斯汀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java网络编程中拿到源后的写入动作相关的知识,希望对你有一定的参考价值。

  在网络编程中的TCP传输里,拿到Socket的源后,应该怎么进行读写操作呢,下面我列举了两种方法,希望大家帮忙补充····

1.利用byte数组作为一个缓冲区进行读写

 1 //获取socket流,将图片上传给服务端
 2         FileInputStream fis=new FileInputStream("c:\\12.jpg");
 3         
 4         //获取了输出流
 5         OutputStream out=s.getOutputStream();
 6         
 7         //用数组作为缓冲
 8         byte[]buf=new byte[1024];
 9         
10         //len用来记录长度
11         int len=0;
12         
13         //循环读写
14         while((len=fis.read(buf))!=-1){
15             //当返回-1时表示读完毕,此时len为总长度
16             out.write(buf,0,len);
17         }
 1 InputStream in=s.getInputStream();
 2 File dir=new File("c:\\pic");
 3         if(!dir.exists()){
 4             dir.mkdirs();
 5         }
 6 FileOutputStream fos=new FileOutputStream("server.jpg");
 7 byte[] buf=new byte[1024];
 8         int len=0;
 9         while((len=in.read())!=-1){
10             fos.write(buf,0,len);
11         }
12         

 

2.使用缓冲区作为缓冲

 1         //使用流输出数据
       BufferedReader bufr=new BufferedReader(new FileReader("client.txt")); 2 3 //通过使用PrintWriter对字节流和字符流进行处理,接管流 4 PrintWriter out =new PrintWriter(s.getOutputStream(),true); 5 6 //开始读取,上传给服务端 7 String line=null; 8 while((line=bufr.readLine())!=null){ 9 out.println(line); 10 }
 1     //将接收的数据放入流中
 2         BufferedReader bufIn=
 3                 new BufferedReader(new InputStreamReader(s.getInputStream()));
 4         
 5         //指定要写入得文件
 6         BufferedWriter bufw=new BufferedWriter(new FileWriter("server.txt"));
 7         
 8         //开始读取
 9         //缓冲区的默认大小为8k,一到8k则会自动刷新,若没有结束标志,则得到的文件大小一定是8的倍数
10         String line=null;
11         while((line=bufIn.readLine())!=null){
12             if("over".equals(line))
13                 break;
14             bufw.write(line);
15             bufw.newLine();
16             //自己写刷新
17             bufw.flush();
18         }
19         

 

以上是关于java网络编程中拿到源后的写入动作的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题之手写promise

更新YUM源后的arning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY错误

片段(Java) | 机试题+算法思路+考点+代码解析 2023

Sleep() 方法后的代码片段没有被执行

如何将这个 Objective-C 代码片段写入 Swift?

java网络爬虫实现信息的抓取