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

来源:互联网 发布:sql删除重复字段数据 编辑:程序博客网 时间:2024/05/17 02:44

个人感觉,流是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();    }}
0 0