欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java io和nio讀寫文件

Java是一個(gè)非常流行的編程語(yǔ)言,主要應(yīng)用于Web開發(fā)、移動(dòng)應(yīng)用開發(fā)、服務(wù)器端編程等領(lǐng)域。在Java編程中,讀寫文件是一個(gè)常見(jiàn)的操作。Java提供了兩種不同的API來(lái)處理文件讀寫操作,分別是IO和NIO。

在IO中,主要使用InputStream和OutputStream類進(jìn)行讀寫操作。例如,我們可以使用FileInputStream類來(lái)讀取文件。下面是一個(gè)簡(jiǎn)單的代碼示例:

public class ReadFile {
public static void main(String[] args) {
try {
InputStream is = new FileInputStream(new File("test.txt"));
int b = 0;
while ((b = is.read()) != -1) {
System.out.print((char)b);
}
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

上述代碼中,我們使用InputStream來(lái)讀取文件,并將讀取到的內(nèi)容輸出到控制臺(tái)。同樣,我們可以使用OutputStream來(lái)寫入文件。以下是示例代碼:

public class WriteFile {
public static void main(String[] args) {
try {
OutputStream os = new FileOutputStream(new File("test.txt"));
os.write("Hello World!".getBytes());
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

在NIO中,我們使用ByteBuffer和Channel類進(jìn)行讀寫操作。以下是一個(gè)簡(jiǎn)單的NIO讀取文件的代碼示例:

public class ReadFileWithNIO {
public static void main(String[] args) {
try {
RandomAccessFile file = new RandomAccessFile("test.txt", "r");
FileChannel channel = file.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
int bytesRead = channel.read(buffer);
while (bytesRead != -1) {
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print((char)buffer.get());
}
buffer.clear();
bytesRead = channel.read(buffer);
}
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

如上所示,在NIO中,我們首先需要獲取文件的Channel對(duì)象,然后再使用ByteBuffer進(jìn)行讀取。同樣,我們也可以使用Channel和ByteBuffer來(lái)進(jìn)行文件寫入操作。例如,以下是一個(gè)使用NIO寫入文件的代碼示例:

public class WriteFileWithNIO {
public static void main(String[] args) {
try {
RandomAccessFile file = new RandomAccessFile("test.txt", "rw");
FileChannel channel = file.getChannel();
String data = "Hello World!";
byte[] bytes = data.getBytes();
ByteBuffer buffer = ByteBuffer.allocate(bytes.length);
buffer.clear();
buffer.put(bytes);
buffer.flip();
channel.write(buffer);
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

綜上所述,Java IO和NIO都可以用于文件讀寫操作,開發(fā)者可以根據(jù)實(shí)際需求選擇合適的API進(jìn)行編程操作。