Re: Reading a Random Access File
christopher_board
Hi all. I am currently working as an IT technician and would like to
create a program in java that will store in a Random Access File each
computer number and how many computers are in that room. I have
managed to get the user input and then add that into a file which is
just a large long list of numbers.
After all the computer rooms and how many computers have been added
into each room I then want to be able to then read from the data file
to then display on the screen how many computers are within each room.
Has anyone got any clues as to how I would go about reading a data
file and how to move the pointers so it can read a different section
of the file.
Any help in this matter would be appreciated.
Thanks
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
class test {
public static void main(String[] args) {
ComputerDatabase dbOut = new ComputerDatabase();
dbOut.database.put("Classroom 101", new ArrayList<String>());
dbOut.database.get("Classroom 101").add("#abc101");
dbOut.database.get("Classroom 101").add("#abc102");
dbOut.database.get("Classroom 101").add("#abc103");
dbOut.database.get("Classroom 101").add("#abc104");
dbOut.database.get("Classroom 101").add("#abc105");
FileOutputStream fos;
FileInputStream fis;
try
{
fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(dbOut);
oos.close();
fos.close();
fis = new FileInputStream("t.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
ComputerDatabase dbIn = new ComputerDatabase();
dbIn = (ComputerDatabase)ois.readObject();
for(String s : dbIn.database.get("Classroom 101"))
{
System.out.println(s);
}
System.out.println(dbIn.database.get("Classroom 101").size() +
" Computers in Classroom 101");
ois.close();
fis.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
static public class ComputerDatabase
implements Serializable
{
public HashMap<String, ArrayList<String>>
database = new HashMap<String, ArrayList<String>>();
}
}