- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
In Java, file reading and writing can be done efficiently using buffered streams, readers, and writers. Here's a short explanation with examples:
1. Buffered File Reading (Using BufferedReader)
Buffers data for efficient reading (instead of byte-by-byte).
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) { // Reads line-by-line
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. Buffered File Writing (Using BufferedWriter)
Buffers data for efficient writing.
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
writer.write("Hello, Java!");
writer.newLine(); // Adds a newline
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. Key Classes
4. Try-with-Resources
Let me know if you'd like a deeper explanation! ?
1. Buffered File Reading (Using BufferedReader)
Buffers data for efficient reading (instead of byte-by-byte).
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) { // Reads line-by-line
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. Buffered File Writing (Using BufferedWriter)
Buffers data for efficient writing.
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
writer.write("Hello, Java!");
writer.newLine(); // Adds a newline
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. Key Classes
| Class | Purpose |
|---|---|
| FileReader / FileWriter | Reads/Writes characters (text files). |
| BufferedReader / BufferedWriter | Wraps readers/writers for buffered I/O. |
| FileInputStream / FileOutputStream | Reads/Writes bytes (binary files). |
| Scanner | Alternative for reading text (e.g., new Scanner(new File("file.txt"))). |
- Automatically closes files (no need for finally blocks).
- Used in the examples above (try (BufferedReader ...)).
- Use BufferedReader/BufferedWriter for text files.
- Use FileInputStream/FileOutputStream for binary files (images, etc.).
- Use Scanner for parsing structured text.
Let me know if you'd like a deeper explanation! ?