关于java中流的使用--文件以及socket

个人感觉,流是java中不同设备之间交换数据的媒介,例如socket中数据的传输,以及文件的读写操作等,都是通过流来实现的.

流的种类

从处理的数据类型上来看,流主要分为字符流(InputStream, OutputStream)和字节流(Reader, Writer),而从功能上来看,主要分为输入流以及输出流.

文件的读写

    File file = new File(".\\test.txt");
    //参数true:表示在文件后边追加内容
    FileOutputStream fileOutputStream = new FileOutputStream(file, true);
    FileInputStream fileInputStream = new FileInputStream(file);
    //装饰者模式,使用带缓冲的输入流
    BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
    //使用byte,字节流读取文件中的内容
    byte []b = new byte[100];
    bufferedInputStream.read(b);
    String string = new String(b, "UTF-8");
    System.out.println(string);
    //使用字符流读取文件中的内容
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    System.out.println(bufferedReader.readLine());


    //写入文件
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
    outputStreamWriter.write("jjjjjjjjjjjjjjjjjjjd我们哈哈哈哈哈");
    BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
    bufferedOutputStream.flush();
    String string = "我们进顶顶顶顶顶顶顶顶顶大大大";
    byte []b = string.getBytes("UTF8");
    bufferedOutputStream.write(b);
    bufferedOutputStream.close();

socket使用

Server

public class TcpServer {
public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    String getString;
    String sendString;
    ServerSocket socket = new ServerSocket(6789);
    while(true) {
        Socket connection = socket.accept();
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()        ));
        DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
        getString = reader.readLine();
        sendString = getString.toUpperCase() + "\n";
        outputStream.writeBytes(sendString);
    }
    }
    }

Client

public class TcpClient {
public static void main(String[] args) throws UnknownHostException, IOException {
    String sendString;
    String getString;
    System.out.println("start connection");
    Socket socket = new Socket("127.0.0.1", 6789);
    System.out.println("connect successfully");
    DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
    BufferedReader fromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    sendString = "send to server from tcpclient";
    outputStream.writeBytes(sendString + "\n");
    getString = fromServer.readLine();
    InputStream in = socket.getInputStream();
    byte[] b = new byte[100];
    in.read(b);
    String string = new String(b, "UTF-8");
    System.out.println(b);
    socket.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值