Java中的IO(input/output)指的是文件的輸入和輸出。在Java中,我們可以使用標(biāo)準(zhǔn)的InputStream和OutputStream類來(lái)完成文件的讀取和寫(xiě)入。
文件的讀取可以使用InputStream類,如下所示:
InputStream inputStream = new FileInputStream("file.txt"); int data = inputStream.read(); while(data != -1) { System.out.println((char) data); data = inputStream.read(); } inputStream.close();
上述代碼首先使用FileInputStream類打開(kāi)一個(gè)文件,然后使用read()方法讀取文件的每一個(gè)字節(jié)。如果read()方法返回-1,則說(shuō)明文件讀取完畢。
文件的寫(xiě)入可以使用OutputStream類,如下所示:
OutputStream outputStream = new FileOutputStream("file.txt"); outputStream.write("Hello, World!".getBytes()); outputStream.close();
上述代碼首先使用FileOutputStream打開(kāi)一個(gè)文件,然后使用write()方法向文件寫(xiě)入數(shù)據(jù)。在此例中,我們向文件中寫(xiě)入了字符串"Hello, World!"。
除了輸入和輸出文件,Java中的IO還可以用于網(wǎng)絡(luò)通信。Socket類用于建立網(wǎng)絡(luò)連接,而ServerSocket類用于監(jiān)聽(tīng)連接請(qǐng)求。如下所示:
使用Socket連接服務(wù)器:
Socket socket = new Socket("www.example.com", 80); InputStream inputStream = socket.getInputStream(); OutputStream outputStream = socket.getOutputStream(); // 使用inputStream和outputStream進(jìn)行讀寫(xiě)操作 socket.close();
上述代碼首先使用Socket類連接了一個(gè)名為"www.example.com"的服務(wù)器,然后使用getInputStream()和getOutputStream()方法分別獲取網(wǎng)絡(luò)輸入流和輸出流。我們可以使用這些IO流與服務(wù)器進(jìn)行通信。
使用ServerSocket監(jiān)聽(tīng)連接請(qǐng)求:
ServerSocket serverSocket = new ServerSocket(8080); while(true) { Socket socket = serverSocket.accept(); // 使用socket進(jìn)行讀寫(xiě)操作 socket.close(); } serverSocket.close();
上述代碼首先創(chuàng)建了一個(gè)監(jiān)聽(tīng)8080端口的ServerSocket。然后通過(guò)accept()方法等待客戶端的連接請(qǐng)求。一旦有客戶端連接到服務(wù)器,就可以使用Socket進(jìn)行讀寫(xiě)操作。