Java是一種廣泛應用于開發各種類型軟件的編程語言,與之相對應的是I/O,即輸入輸出,其作用是在程序和外部文件之間傳輸數據。本文將討論如何將Java與I/O結合使用。
在Java中,I/O可以通過Input/OutputStream實現。Input/OutputStream是一個抽象類,它包含許多方法可以與各種不同類型的I/O流交互。例如,String類中的getBytes()方法可以用于將字符串轉換為字節流并寫入OutputStream。以下是一個基本的I/O代碼框架:
import java.io.*; public class BasicIOExample { public static void main(String args[]) { try { InputStream input = new FileInputStream("file.txt"); OutputStream output = new FileOutputStream("out.txt"); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = input.read(buffer)) != -1) { output.write(buffer, 0, bytesRead); } input.close(); output.close(); } catch (IOException e) { e.printStackTrace(); } } }
在上面的代碼中,我們使用了FileInputStream和FileOutputStream兩個類來獲取了本地文件的兩個流。使用一個緩沖區將兩個流按照字節流的方式連接讀取和寫出操作。
以上代碼通常只通過控制臺輸入輸出,在實際情況中,我們更關注網絡I/O。INetAddr和ServerSocket兩個類常用于實現網絡I/O。接下來的例子演示了如何構建一個繞回服務器:
import java.net.ServerSocket; import java.net.Socket; import java.io.InputStream; import java.io.OutputStream; import java.util.Date; public class EchoServer { public static void main(String args[]) { try { ServerSocket serverSocket = new ServerSocket(6789); while (true) { Socket clientSocket = serverSocket.accept(); InputStream input = clientSocket.getInputStream(); OutputStream output = clientSocket.getOutputStream(); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = input.read(buffer)) != -1) { output.write(buffer, 0, bytesRead); } output.close(); input.close(); clientSocket.close(); } } catch (IOException e) { e.printStackTrace(); } } }
上面的代碼是一個簡單的繞回服務器。在這里,我們監聽一個端口,接受來自客戶端的套接字連接。使用輸入流讀取數據,將其寫為輸出流的方式返回到客戶端。
綜上所述,I/O結合Java編程可以實現各種輸入輸出操作,包括文件、網絡等。盡管使用I/O在Java編程中的具體方式可能因實際情況而異,但是使用InputStream/OutputStream和各種不同的數據類型和流來進行I/O操作的基本框架仍然適用。
下一篇css3動漫視頻