0% found this document useful (0 votes)
155 views11 pages

JNJHJ

The document provides an overview of file handling in Java, describing how to read and write both text and binary files. It explains that FileReader and BufferedReader are used for reading text files, while FileInputStream handles binary files and text with unusual encodings. For writing, FileWriter and BufferedWriter write text files, and FileOutputStream writes binary files. Code examples are given to demonstrate reading line-by-line from a text file, reading arbitrary amounts of binary data, and writing lines of text to a new file.

Uploaded by

XXX
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
155 views11 pages

JNJHJ

The document provides an overview of file handling in Java, describing how to read and write both text and binary files. It explains that FileReader and BufferedReader are used for reading text files, while FileInputStream handles binary files and text with unusual encodings. For writing, FileWriter and BufferedWriter write text files, and FileOutputStream writes binary files. Code examples are given to demonstrate reading line-by-line from a text file, reading arbitrary amounts of binary data, and writing lines of text to a new file.

Uploaded by

XXX
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

About File Handling in Java

One this page you can find a simple guide to reading and writing files in the Java
programming language. The code examples here give you everything you need to read
and write files right away, and if you’re in a hurry, you can use them without needing to
understanding in detail how they work.

File handling in Java is frankly a bit of a pig’s ear, but it’s not too complicated once you
understand a few basic ideas. The key things to remember are as follows.

You can read files using these classes:

 FileReader for text files in your system’s default encoding (for example, files
containing Western European characters on a Western European computer).
 FileInputStream for binary files and text files that contain ‘weird’ characters.
FileReader (for text files) should usually be wrapped in aBufferedFileReader. This
saves up data so you can deal with it a line at a time or whatever instead of character by
character (which usually isn’t much use).
If you want to write files, basically all the same stuff applies, except you’ll deal with
classes named FileWriter with BufferedFileWriter for text files,
orFileOutputStream for binary files.

Reading Ordinary Text Files in Java


If you want to read an ordinary text file in your system’s default encoding (usually the
case most of the time for most people), use FileReader and wrap it in
a BufferedReader.
In the following program, we read a file called “temp.txt” and output the file line by line
on the console.

import java.io.*;
public class Test {

public static void main(String [] args) {

// The name of the file to open.

String fileName = "temp.txt";

// This will reference one line at a time

String line = null;

try {

// FileReader reads text files in the default encoding.

FileReader fileReader =

new FileReader(fileName);

// Always wrap FileReader in BufferedReader.

BufferedReader bufferedReader =
new BufferedReader(fileReader);

while((line = bufferedReader.readLine()) != null) {

System.out.println(line);

// Always close files.

bufferedReader.close();

catch(FileNotFoundException ex) {

System.out.println(

"Unable to open file '" +

fileName + "'");

catch(IOException ex) {

System.out.println(
"Error reading file '"

+ fileName + "'");

// Or we could just do this:

// ex.printStackTrace();

If “temp.txt” contains this:

I returned from the City about three o'clock on that

May afternoon pretty well disgusted with life.

I had been three months in the Old Country, and was

fed up with it.

If anyone had told me a year ago that I would have

been feeling like that I should have laughed at him;

but there was the fact.

The weather made me liverish,


the talk of the ordinary Englishman made me sick,

I couldn't get enough exercise, and the amusements

of London seemed as flat as soda-water that

has been standing in the sun.

'Richard Hannay,' I kept telling myself, 'you

have got into the wrong ditch, my friend, and

you had better climb out.'

Reading Binary Files in Java


If you want to read a binary file, or a text file containing ‘weird’ characters (ones that
your system doesn’t deal with by default), you need to useFileInputStream instead of
FileReader. Instead of wrapping FileInputStream in a buffer, FileInputStream defines a
method called read() that lets you fill a buffer with data, automatically reading just
enough bytes to fill the buffer (or less if there aren’t that many bytes left to read).
Here’s a complete example.

import java.io.*;

public class Test {

public static void main(String [] args) {


// The name of the file to open.

String fileName = "temp.txt";

try {

// Use this for reading the data.

byte[] buffer = new byte[1000];

FileInputStream inputStream =

new FileInputStream(fileName);

// read fills buffer with data and returns

// the number of bytes read (which of course

// may be less than the buffer size, but

// it will never be more).

int total = 0;

int nRead = 0;
while((nRead = inputStream.read(buffer)) != -1) {

// Convert to String so we can display it.

// Of course you wouldn't want to do this with

// a 'real' binary file.

System.out.println(new String(buffer));

total += nRead;

// Always close files.

inputStream.close();

System.out.println("Read " + total + " bytes");

catch(FileNotFoundException ex) {

System.out.println(

"Unable to open file '" +


fileName + "'");

catch(IOException ex) {

System.out.println(

"Error reading file '"

+ fileName + "'");

// Or we could just do this:

// ex.printStackTrace();

Writing Text Files in Java


To write a text file in Java, use FileWriter instead of FileReader,
andBufferedOutputWriter instead of BufferedOutputReader. Simple eh?
Here’s an example program that creates a file called ‘temp.txt’ and writes some lines of
text to it.

import java.io.*;
public class Test {

public static void main(String [] args) {

// The name of the file to open.

String fileName = "temp.txt";

try {

// Assume default encoding.

FileWriter fileWriter =

new FileWriter(fileName);

// Always wrap FileWriter in BufferedWriter.

BufferedWriter bufferedWriter =

new BufferedWriter(fileWriter);

// Note that write() does not automatically


// append a newline character.

bufferedWriter.write("Hello there,");

bufferedWriter.write(" here is some text.");

bufferedWriter.newLine();

bufferedWriter.write("We are writing");

bufferedWriter.write(" the text to the file.");

// Always close files.

bufferedWriter.close();

catch(IOException ex) {

System.out.println(

"Error writing to file '"

+ fileName + "'");

// Or we could just do this:

// ex.printStackTrace();
}

The output file now looks like this (after running the program):

Hello there, here is some text.

We are writing the text to the file.

You might also like