Junior
In which packages are the classes for input/output streams?
sobes.tech AI
Answer from AI
Input/output classes are located in the java.io and java.nio packages.
java.io: Contains traditional byte and character-based input/output streams.java.nio: Contains new non-blocking input/output streams using buffers and channels (NIO - New Input/Output).
Some examples of classes from these packages:
| Package | Classes (examples) | Description |
|---|---|---|
java.io |
FileInputStream, FileOutputStream |
Byte-based input/output streams for working with files |
FileReader, FileWriter |
Character-based input/output streams for working with files | |
BufferedReader, BufferedWriter |
Buffered streams for efficient input/output | |
DataInputStream, DataOutputStream |
Streams for reading/writing primitive data types | |
java.nio |
FileChannel, SocketChannel |
Channels for working with files and network connections |
ByteBuffer, CharBuffer |
Buffers for storing data when working with channels | |
Selector |
Mechanism for multiplexing non-blocking operations |
Example of using FileInputStream from java.io:
import java.io.FileInputStream;
import java.io.IOException;
// Example of reading from a file using FileInputStream
try (FileInputStream fis = new FileInputStream("myfile.txt")) {
int byteRead;
while ((byteRead = fis.read()) != -1) {
System.out.print((char) byteRead); // Read one byte at a time and print as a character
}
} catch (IOException e) {
e.printStackTrace();
}
Example of using FileChannel from java.nio:
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
// Example of reading from a file using FileChannel and ByteBuffer
try (FileChannel fileChannel = FileChannel.open(Paths.get("myfile.txt"), StandardOpenOption.READ)) {
ByteBuffer buffer = ByteBuffer.allocate(1024); // Create a buffer
int bytesRead;
while ((bytesRead = fileChannel.read(buffer)) != -1) {
buffer.flip(); // Prepare buffer for reading
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get()); // Read from buffer
}
buffer.clear(); // Prepare buffer for next write
}
} catch (IOException e) {
e.printStackTrace();
}