头歌 实验六 Java流式编程与网络程序设计

实验六 Java流式编程与网络程序设计

制作不易!点个关注,给大家带来更多的价值

第1关 字节输入/输出流实现数据的保存和读取

java 复制代码
package step1;

import java.io.*;
import java.util.*;

public class SortArray {

	public static void main(String[] args) {
        /********** Begin **********/
		// 创建保存整型数据的数组(数组大小10)
        int[] data= new int[10];
		
		// 给数组赋随
        Scanner sc = new Scanner(System.in);
		for (int i = 0; i < data.length; i++) {
			data[i] = sc.nextInt();
            //data[i]=1+(int)(Math.random()*100);

            
		}
		// 将数组元素按有小到大顺序排列
		Arrays.sort(data);
		
		try {
			// 创建数据保存文件,如果文件不存在,重新创建
			File file = new File("data.txt");
			if (!file.exists()) {
				file.createNewFile();
			}
			// 创建FileOutputStream和DataOutputStream 输出流
			FileOutputStream fout=new FileOutputStream(file);
			DataOutputStream dout=new DataOutputStream(fout);

			// 利用输出流向文件中写入数组数据
			for(int i=0;i<data.length;i++){
				dout.writeInt(data[i]);
			}

			// 关闭输出流
            dout.close();
            fout.close();

			// 创建FileInputStream和DataInputStream 输入流
            FileInputStream f=new FileInputStream(file);
			DataInputStream d=new DataInputStream(f);


			// 利用输入流从文件读取数据并输出
            for(int i=0;i<data.length;i++){
                System.out.print(d.readInt());
                    if(i<data.length-1){
                        System.out.print("<");
                    }
				
				
			}
            

			// 关闭输入流
            d.close();
            f.close();
		} catch (IOException e) {
			// 异常处理
			System.out.println("读写发生异常");
		}
        /********** End **********/
	}
}

第2关 字符输入/输出流实现发送电报

java 复制代码
package step2;

import java.io.*;
import java.util.Scanner;

public class Encrypt {
    public static void main(String[] args) throws IOException {
        
    	// 创建要发送的电报
        Scanner sc = new Scanner(System.in);
    	String data = sc.next();
        
        // 将电报分割成字符数组
    	/********** Begin **********/
        char[]a=data.toCharArray();


        /********** End **********/

        // 打开指定存放电报的文件,如果文件不存在,则创建
        File file = new File("data.txt");
        if(!file.exists()) {
        	file.createNewFile();
        }
        
        // 循环遍历字符数组,将每个字符加密处理
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 'q');
        }

        // 利用字符输出流FileWriter将加密后的字符数组写入文件中
        /********** Begin **********/
        FileWriter fw =new FileWriter(file);
        fw.write(a,0,a.length);
        fw.close();
        

        /********** End **********/


        
        // 利用字符输入流FileReader读取文件,将密文输出
        /********** Begin **********/
        FileReader fr=new FileReader(file);
        char[] arr=new char[a.length];
        fr.read(arr);
        System.out.println("密文:");
        System.out.println(arr);

        /********** End **********/



        
        // 利用字符输入流FileReader读取文件,将密文转换为明文输出    
        /********** Begin **********/
        for(int i=0 ;i<a.length;i++){
            arr[i]=(char)(arr[i]^'q');
        }
         System.out.println("明文:");
        System.out.println(arr);
        
        

        /********** End **********/    
        
        
    }
}

第3关 简单TCP通信

java 复制代码
package step3;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;

public class Client {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        server.start();
        Scanner sc = new Scanner(System.in);

        //创建客户端Socket(s),指定服务器端IP地址和端口号
        /********** Begin **********/
        Socket s=new Socket("127.0.0.1",8000);

        /**********  end  **********/
        DataOutputStream dos = new DataOutputStream(s.getOutputStream());
        DataInputStream dis = new DataInputStream(s.getInputStream());
        System.out.println(dis.readUTF());
        String name = sc.next();
        dos.writeUTF(name);
        System.out.println(dis.readUTF());
        s.close();
    }
}

第4关 TCP通信实现奇偶数判断

java 复制代码
package step4;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;

public class ClientPlus {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		ServerPlus server = new ServerPlus();
		server.start();
		try {
			//创建客户端Socket(s),指定服务器端IP地址和端口号
			/********** Begin **********/
            Socket s= new Socket("127.0.0.1",8000);


			/**********  end  **********/
			DataOutputStream dos = new DataOutputStream(s.getOutputStream());
			DataInputStream dis = new DataInputStream(s.getInputStream());
			//客户端通过循环依次接收服务器返回的结果,并输入新的整数传递给服务器
			/********** Begin **********/
            while(true){
                System.out.println(dis.readUTF());
                    String num=sc.next();
                    dos.writeUTF(num);
            }

			/**********  end  **********/
		} catch (EOFException e) {
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
相关推荐
程序媛小果6 分钟前
基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
java·vue.js·spring boot
追风林11 分钟前
mac m1 docker本地部署canal 监听mysql的binglog日志
java·docker·mac
芒果披萨26 分钟前
El表达式和JSTL
java·el
q5673152326 分钟前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
许野平1 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨1 小时前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar1 小时前
yelp数据集上识别潜在的热门商家
开发语言·python
duration~1 小时前
Maven随笔
java·maven
zmgst1 小时前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
跃ZHD1 小时前
前后端分离,Jackson,Long精度丢失
java