⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addressbookio.java

📁 JAVA source code with book JAVA SE6
💻 JAVA
字号:
import java.io.*;

public class AddressBookIO
{
    private static File addressBookFile = new File("address_book.txt");
    private static final String FIELD_SEP = "\t";
    private static final int COL_WIDTH = 20;

    // use this method to return a string that displays
    // all entries in the address_book.txt file
    public static String getEntriesString()
    {
        BufferedReader in = null;
        try
        {
            checkFile();

            in = new BufferedReader(
                 new FileReader(addressBookFile));

            // define the string and set a header
            String entriesString = "";
            entriesString = padWithSpaces("Name", COL_WIDTH)
                + padWithSpaces("Email", COL_WIDTH)
                + padWithSpaces("Phone", COL_WIDTH)
                + "\n";

            entriesString += padWithSpaces("------------------", COL_WIDTH)
                + padWithSpaces("------------------", COL_WIDTH)
                + padWithSpaces("------------------", COL_WIDTH)
                + "\n";

            // append each line in the file to the entriesString
            String line = in.readLine();
            while(line != null)
            {
                String[] columns = line.split(FIELD_SEP);
                String name = columns[0];
                String emailAddress = columns[1];
                String phoneNumber = columns[2];

                entriesString +=
                    padWithSpaces(name, COL_WIDTH) +
                    padWithSpaces(emailAddress, COL_WIDTH) +
                    padWithSpaces(phoneNumber, COL_WIDTH) +
                    "\n";

                line = in.readLine();
            }
            return entriesString;
        }
        catch(IOException ioe)
        {
            ioe.printStackTrace();
            return null;
        }
        finally
        {
            close(in);
        }
    }

    // use this method to append an address book entry
    // to the end of the address_book.txt file
    public static boolean saveEntry(AddressBookEntry entry)
    {
        PrintWriter out = null;
        try
        {
            checkFile();

            // open output stream for appending
            out = new PrintWriter(
                  new BufferedWriter(
                  new FileWriter(addressBookFile, true)));

            // write all entry to the end of the file
            out.print(entry.getName() + FIELD_SEP);
            out.print(entry.getEmailAddress() + FIELD_SEP);
            out.print(entry.getPhoneNumber() + FIELD_SEP);
            out.println();
        }
        catch(IOException ioe)
        {
            ioe.printStackTrace();
            return false;
        }
        finally
        {
            close(out);
        }
        return true;
    }

    // a private method that creates a blank file if the file doesn't already exist
    private static void checkFile() throws IOException
    {
        // if the file doesn't exist, create it
        if (!addressBookFile.exists())
            addressBookFile.createNewFile();
    }

    // a private method that closes the I/O stream
    private static void close(Closeable stream)
    {
        try
        {
            if (stream != null)
                stream.close();
        }
        catch(IOException ioe)
        {
            ioe.printStackTrace();
        }
    }

    // a private method that is used to set the width of a column
    private static String padWithSpaces(String s, int length)
    {
        if (s.length() < length)
        {
            StringBuilder sb = new StringBuilder(s);
            while(sb.length() < length)
            {
                sb.append(" ");
            }
            return sb.toString();
        }
        else
        {
            return s.substring(0, length);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -