1. Trang chủ
  2. » Công Nghệ Thông Tin

Lecture An introduction to computer science using java (2nd Edition): Chapter 15 - S.N. Kamin, D. Mickunas, E. Reingold

20 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 265,91 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chapter 15 - Text processing and file Input/Output. In this chapter we will: describe the java.io package, introduce the Java StringBuffer class, show how files can be read and written, discuss how to handle file input and output exceptions, demonstrate how to perform console input and output.

Trang 1

Chapter 15

Text Processing and

File Input/Output

Lecture Slides to Accompany

An Introduction to Computer Science Using Java (2nd Edition)

by S.N Kamin, D Mickunas, E Reingold

Trang 2

Chapter Preview

In this chapter we will:

• describe the java.io package

• introduce the Java StringBuffer class

• show how files can be read and written

• discuss how to handle file input and output

exceptions

• demonstrate how to perform console input and output

Trang 3

• Java provides a number of methods for

operating on String objects

• String objects are immutable

• Immutable objects cannot be changed once they are created

Trang 4

• Java provides a mutable staring class called

StringBuffer that allows strings to grow

dynamically during program execution

• Several StringBuffer methods are the same as those found in String

• To convert between String objects and

StringBuffer objects Java provides constructors for each class

• The StringBuffer class also contains a ToString method to allow easier output

Trang 5

Sequential Files

• Files are stored are stored on disks

• In this section we will assume that files

consist of multiple lines composed of

characters

• Each line ends with an end of line character

• The file itself may have an end of file

character

• Programmers often need to read or write files stored on disks

Trang 6

File Input

• Java classes that support file input are found

in the java.io package

• FileReader allows us to open a file for

reading

• BufferedReader is a wrapper class that provides methods that

– allow us to treat the file as a stream of characters – increases the efficiency of reading

– allows line-oriented reading

Trang 8

Wrapper Classes

Class W is said to wrap class Y if:

1 Y is a concrete (not abstract) class

2 W’s constructor takes Y as an argument and

stores a local copy of Y

3 W reimplements all of Y’s methods

• A wrapper can wrap a class and be the

subclass of another class at the same time

Trang 9

Buffered Input

• We can make a file available for reading one character at a time by using

FileReader fr = FileReader(filename);

• We can read the file more efficiently by

reading a block of characters at a time, this is

called buffering the read

• To perform a buffered read we use this

BufferedReader br =

new BufferedReader(

new FileReader(filename));

Trang 10

Input Example – Part 1

import CSLib.*;

import java.io.*;

public class Copy {

// Copy file to an OutputBox

private FileBuffer fr;

private BufferedReader br;

public Copy(String filename) throws IOException {

// open local file given by filename

br = new BufferedReader(new FileReader(filename)); }

Trang 11

Input Example – Part 2

public void copy( ) throws IOException {

OutputBox out = new OutputBox( );

int I;

while (true) {

i = br.read();

if (i == -1) // check for end of file return;

out.print((char) i); // must have char to print }

}

}

Trang 12

File Output

• Java classes that support file output are found in the java.io package

• FileWriter and BufferedReader provide

methods to write

– a single character

– an array of characters

– a string

– the end of line

• PrintWriter is a wrapper class provided to convert several data type values to printable forms

Trang 14

Writing to a File

• To make a file available for printing

PrintWriter pr =

new PrintWriter(

new BufferedWriter(

new FileWriter(filename)));

• PrintWriter has void methods print and println that behave the same way as they for OutputBox objects

Trang 16

Mail Merge Application – part 1

import java.io.*;

public class MailMerge{

// mail merge application

BufferedReader template, maillist;

PrintWriter out;

public void openFiles(String fn) throws Ioexception { template = new BufferedReader(

new FileReader(fn + “.template”)); maillist = new BufferedReader(

new FileReader(fn + “.list”));

out = new PrintWriter(

new BufferedWriter(

new FileReader(fn + “.out”)));

}

Trang 17

Mail Merge Application – part 2

readUpto(BufferedReader br, char delim)

throws Ioexception { StringBuffer sb = new StringBuffer( );

int inputChar;

while (true) {

inputchar = br.read( );

if ((inputchar == -1) || (inputchar == delim)) return sb;

sb.append((char) inputchar);

}

}

private StringBuffer[] st = new StringBuffer[10];

Trang 18

Mail Merge Application – part 3

int n;

// Read the first portion of the template

st[0] = readUpro(template, ‘%’);

// If there is there is an ‘%’ as the first char // read the rest of the template

for (n = 1; n < 10; n++) {

st{n] = readUpto(template, ‘%’);

if (st[n].length() == 0) // might be empty return n;

}

return n;

}

Trang 19

Mail Merge Application – part 4

Stringbuffer sm;

in n = readTemplate(); // Read the first field

sm = readUpto(mailList, ‘#’);

while (true) {

// if no more fields

if (sm.length() == 0)return;

out.print(st[0]);

// interleave template portions and fields

for (int i = 1; i < n; i++) {

mailList.read( ); // get past new line

out.print(sm); // print field

out.print(st[i]); // print next template

sm = readUpto(mailList, ‘#’);

}

out.println(“ -”);

}

Trang 20

Mail Merge Application – part 5

out.close( );

}

}

• A typical client

import java.io.*;

public class MailMergeClient {

public static void main (String{] args)

throws exception IOException { MailMerge mm = new MailMerge( );

mm.openFiles(args[0]);

mm.merge( );

mm.closeFiles( );

}

}

Ngày đăng: 15/05/2020, 22:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN