100% found this document useful (6 votes)
1K views66 pages

Complete Java: The Complete Reference, Twelfth Edition Schildt PDF For All Chapters

Schildt

Uploaded by

hercytijera
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (6 votes)
1K views66 pages

Complete Java: The Complete Reference, Twelfth Edition Schildt PDF For All Chapters

Schildt

Uploaded by

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

Download Full Version ebookmass - Visit ebookmass.

com

Java: The Complete Reference, Twelfth Edition


Schildt

https://ebookmass.com/product/java-the-complete-reference-
twelfth-edition-schildt/

OR CLICK HERE

DOWLOAD NOW

Discover More Ebook - Explore Now at ebookmass.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Java: The Complete Reference (Complete Reference Series)


13th Edition Schildt

https://ebookmass.com/product/java-the-complete-reference-complete-
reference-series-13th-edition-schildt/

ebookmass.com

Java: The Complete Reference 12th Edition Herbert Schildt

https://ebookmass.com/product/java-the-complete-reference-12th-
edition-herbert-schildt/

ebookmass.com

Java: A Beginner’s Guide, Eighth Edition Herbert Schildt

https://ebookmass.com/product/java-a-beginners-guide-eighth-edition-
herbert-schildt/

ebookmass.com

Language, Vernacular Discourse and Nationalisms 1st ed.


Edition Finex Ndhlovu

https://ebookmass.com/product/language-vernacular-discourse-and-
nationalisms-1st-ed-edition-finex-ndhlovu/

ebookmass.com
Janda Manuelle Muskelfunktionsdiagnostik 5th Edition Beyer

https://ebookmass.com/product/janda-manuelle-
muskelfunktionsdiagnostik-5th-edition-beyer/

ebookmass.com

Statistical Reasoning for Everyday Life 5th Edition,


(Ebook PDF)

https://ebookmass.com/product/statistical-reasoning-for-everyday-
life-5th-edition-ebook-pdf/

ebookmass.com

C How to Program: With Case Studies in Applications and


Systems Programming, Global Edition Paul Deitel

https://ebookmass.com/product/c-how-to-program-with-case-studies-in-
applications-and-systems-programming-global-edition-paul-deitel/

ebookmass.com

■■■■■■ ■■ TypeScript■React■Node.js■webpack ■ Docker Frank


Zammetti

https://ebookmass.com/product/%e7%8e%b0%e4%bb%a3%e5%85%a8%e6%a0%88%e5%
bc%80%e5%8f%91-%e4%bd%bf%e7%94%a8-
typescript%e3%80%81react%e3%80%81node-
js%e3%80%81webpack-%e5%92%8c-docker-frank-zammetti/
ebookmass.com

The Root Cause: Rethink Your Approach to Solving Stubborn


Enterprise-Wide Problems Hans Norden

https://ebookmass.com/product/the-root-cause-rethink-your-approach-to-
solving-stubborn-enterprise-wide-problems-hans-norden/

ebookmass.com
Juvenile Delinquency in a Diverse Society 2nd Edition,
(Ebook PDF)

https://ebookmass.com/product/juvenile-delinquency-in-a-diverse-
society-2nd-edition-ebook-pdf/

ebookmass.com
About the Author
Best-selling author Herbert Schildt has written extensively about
programming for over three decades and is a leading authority on
the Java language. Called “one of the world’s foremost authors of
books about programming” by International Developer magazine, his
books have sold millions of copies worldwide and have been
translated into all major foreign languages. He is the author of
numerous books on Java, including Java: A Beginner’s Guide, Herb
Schildt’s Java Programming Cookbook, Introducing JavaFX 8
Programming, and Swing: A Beginner’s Guide. He has also written
extensively about C, C++, and C#. Featured as one of the rock star
programmers in Ed Burns’ book Secrets of the Rock Star
Programmers: Riding the IT Crest, Schildt is interested in all facets
of computing, but his primary focus is computer languages. Schildt
holds both BA and MCS degrees from the University of Illinois. His
website is www.HerbSchildt.com.

About the Technical Editor


Dr. Danny Coward has worked on all editions of the Java platform.
He led the definition of Java Servlets into the first version of the Java
EE platform and beyond, web services into the Java ME platform,
and the strategy and planning for Java SE 7. He founded JavaFX
technology and, most recently, designed the largest addition to the
Java EE 7 standard, the Java WebSocket API. From coding in Java,
to designing APIs with industry experts, to serving for several years
as an executive to the Java Community Process, he has a uniquely
broad perspective into multiple aspects of Java technology. In
addition, he is the author of two books on Java programming: Java
WebSocket Programming and Java EE 7: The Big Picture. Most
recently, he has been applying his knowledge of Java to helping
scale massive Java-based services for one of the world’s most
successful software companies. Dr. Coward holds a bachelor’s,
master’s, and doctorate in mathematics from the University of
Oxford.
Copyright © 2022 by McGraw Hill. All rights reserved. Except as
permitted under the United States Copyright Act of 1976, no part of
this publication may be reproduced or distributed in any form or by
any means, or stored in a database or retrieval system, without the
prior written permission of the publisher.

ISBN: 978-1-26-046342-2
MHID: 1-26-046342-7

The material in this eBook also appears in the print version of this
title: ISBN: 978-1-26-046341-5, MHID: 1-26-046341-9.

eBook conversion by codeMantra


Version 1.0

All trademarks are trademarks of their respective owners. Rather


than put a trademark symbol after every occurrence of a
trademarked name, we use names in an editorial fashion only, and
to the benefit of the trademark owner, with no intention of
infringement of the trademark. Where such designations appear in
this book, they have been printed with initial caps.

McGraw-Hill Education eBooks are available at special quantity


discounts to use as premiums and sales promotions or for use in
corporate training programs. To contact a representative, please visit
the Contact Us page at www.mhprofessional.com.

Information has been obtained by McGraw Hill from sources believed


to be reliable. However, because of the possibility of human or
mechanical error by our sources, McGraw Hill, or others, McGraw Hill
does not guarantee the accuracy, adequacy, or completeness of any
information and is not responsible for any errors or omissions or the
results obtained from the use of such information.

Oracle Corporation does not make any representations or warranties


as to the accuracy, adequacy, or completeness of any information
contained in this Work, and is not responsible for any errors or
omissions.

TERMS OF USE

This is a copyrighted work and McGraw-Hill Education and its


licensors reserve all rights in and to the work. Use of this work is
subject to these terms. Except as permitted under the Copyright Act
of 1976 and the right to store and retrieve one copy of the work,
you may not decompile, disassemble, reverse engineer, reproduce,
modify, create derivative works based upon, transmit, distribute,
disseminate, sell, publish or sublicense the work or any part of it
without McGraw-Hill Education’s prior consent. You may use the
work for your own noncommercial and personal use; any other use
of the work is strictly prohibited. Your right to use the work may be
terminated if you fail to comply with these terms.

THE WORK IS PROVIDED “AS IS.” McGRAW-HILL EDUCATION AND


ITS LICENSORS MAKE NO GUARANTEES OR WARRANTIES AS TO
THE ACCURACY, ADEQUACY OR COMPLETENESS OF OR RESULTS
TO BE OBTAINED FROM USING THE WORK, INCLUDING ANY
INFORMATION THAT CAN BE ACCESSED THROUGH THE WORK VIA
HYPERLINK OR OTHERWISE, AND EXPRESSLY DISCLAIM ANY
WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR
A PARTICULAR PURPOSE. McGraw-Hill Education and its licensors do
not warrant or guarantee that the functions contained in the work
will meet your requirements or that its operation will be
uninterrupted or error free. Neither McGraw-Hill Education nor its
licensors shall be liable to you or anyone else for any inaccuracy,
error or omission, regardless of cause, in the work or for any
damages resulting therefrom. McGraw-Hill Education has no
responsibility for the content of any information accessed through
the work. Under no circumstances shall McGraw-Hill Education
and/or its licensors be liable for any indirect, incidental, special,
punitive, consequential or similar damages that result from the use
of or inability to use the work, even if any of them has been advised
of the possibility of such damages. This limitation of liability shall
apply to any claim or cause whatsoever whether such claim or cause
arises in contract, tort or otherwise.
Contents at a Glance
PART I The Java Language
1 The History and Evolution of Java
2 An Overview of Java
3 Data Types, Variables, and Arrays
4 Operators
5 Control Statements
6 Introducing Classes
7 A Closer Look at Methods and Classes
8 Inheritance
9 Packages and Interfaces
10 Exception Handling
11 Multithreaded Programming
12 Enumerations, Autoboxing, and Annotations
13 I/O, Try-with-Resources, and Other Topics
14 Generics
15 Lambda Expressions
16 Modules
17 Switch Expressions, Records, and Other Recently
Added Features

PART II The Java Library


18 String Handling
19 Exploring java.lang
20 java.util Part 1: The Collections Framework
21 java.util Part 2: More Utility Classes
22 Input/Output: Exploring java.io
23 Exploring NIO
24 Networking
25 Event Handling
26 Introducing the AWT: Working with Windows,
Graphics, and Text
27 Using AWT Controls, Layout Managers, and Menus
28 Images
29 The Concurrency Utilities
30 The Stream API
31 Regular Expressions and Other Packages

PART III Introducing GUI Programming with Swing


32 Introducing Swing
33 Exploring Swing
34 Introducing Swing Menus

PART IV Applying Java


35 Java Beans
36 Introducing Servlets

PART V Appendixes
A Using Java’s Documentation Comments
B Introducing JShell
C Compile and Run Simple Single-File Programs in One
Step

Index
Contents
Preface

Part I The Java Language


Chapter 1 The History and Evolution of Java
Java’s Lineage
The Birth of Modern Programming: C
C++: The Next Step
The Stage Is Set for Java
The Creation of Java
The C# Connection
How Java Impacted the Internet
Java Applets
Security
Portability
Java’s Magic: The Bytecode
Moving Beyond Applets
A Faster Release Schedule
Servlets: Java on the Server Side
The Java Buzzwords
Simple
Object-Oriented
Robust
Multithreaded
Architecture-Neutral
Interpreted and High Performance
Distributed
Dynamic
The Evolution of Java
A Culture of Innovation
Chapter 2 An Overview of Java
Object-Oriented Programming
Two Paradigms
Abstraction
The Three OOP Principles
A First Simple Program
Entering the Program
Compiling the Program
A Closer Look at the First Sample Program
A Second Short Program
Two Control Statements
The if Statement
The for Loop
Using Blocks of Code
Lexical Issues
Whitespace
Identifiers
Literals
Comments
Separators
The Java Keywords
The Java Class Libraries
Chapter 3 Data Types, Variables, and Arrays
Java Is a Strongly Typed Language
The Primitive Types
Integers
byte
short
int
long
Floating-Point Types
float
double
Characters
Booleans
A Closer Look at Literals
Integer Literals
Floating-Point Literals
Boolean Literals
Character Literals
String Literals
Variables
Declaring a Variable
Dynamic Initialization
The Scope and Lifetime of Variables
Type Conversion and Casting
Java’s Automatic Conversions
Casting Incompatible Types
Automatic Type Promotion in Expressions
The Type Promotion Rules
Arrays
One-Dimensional Arrays
Multidimensional Arrays
Alternative Array Declaration Syntax
Introducing Type Inference with Local Variables
Some var Restrictions
A Few Words About Strings
Chapter 4 Operators
Arithmetic Operators
The Basic Arithmetic Operators
The Modulus Operator
Arithmetic Compound Assignment Operators
Increment and Decrement
The Bitwise Operators
The Bitwise Logical Operators
The Left Shift
The Right Shift
The Unsigned Right Shift
Bitwise Operator Compound Assignments
Relational Operators
Boolean Logical Operators
Short-Circuit Logical Operators
The Assignment Operator
The ? Operator
Operator Precedence
Using Parentheses
Chapter 5 Control Statements
Java’s Selection Statements
if
The Traditional switch
Iteration Statements
while
do-while
for
The For-Each Version of the for Loop
Local Variable Type Inference in a for Loop
Nested Loops
Jump Statements
Using break
Using continue
return
Chapter 6 Introducing Classes
Class Fundamentals
The General Form of a Class
A Simple Class
Declaring Objects
A Closer Look at new
Assigning Object Reference Variables
Introducing Methods
Adding a Method to the Box Class
Returning a Value
Adding a Method That Takes Parameters
Constructors
Parameterized Constructors
The this Keyword
Instance Variable Hiding
Garbage Collection
A Stack Class
Chapter 7 A Closer Look at Methods and Classes
Overloading Methods
Overloading Constructors
Using Objects as Parameters
A Closer Look at Argument Passing
Returning Objects
Recursion
Introducing Access Control
Understanding static
Introducing final
Arrays Revisited
Introducing Nested and Inner Classes
Exploring the String Class
Using Command-Line Arguments
Varargs: Variable-Length Arguments
Overloading Vararg Methods
Varargs and Ambiguity
Local Variable Type Inference with Reference Types
Chapter 8 Inheritance
Inheritance Basics
Member Access and Inheritance
A More Practical Example
A Superclass Variable Can Reference a
Subclass Object
Using super
Using super to Call Superclass Constructors
A Second Use for super
Creating a Multilevel Hierarchy
When Constructors Are Executed
Method Overriding
Dynamic Method Dispatch
Why Overridden Methods?
Applying Method Overriding
Using Abstract Classes
Using final with Inheritance
Using final to Prevent Overriding
Using final to Prevent Inheritance
Local Variable Type Inference and Inheritance
The Object Class
Chapter 9 Packages and Interfaces
Packages
Defining a Package
Finding Packages and CLASSPATH
A Short Package Example
Packages and Member Access
An Access Example
Importing Packages
Interfaces
Defining an Interface
Implementing Interfaces
Nested Interfaces
Applying Interfaces
Variables in Interfaces
Interfaces Can Be Extended
Default Interface Methods
Default Method Fundamentals
A More Practical Example
Multiple Inheritance Issues
Use static Methods in an Interface
Private Interface Methods
Final Thoughts on Packages and Interfaces
Chapter 10 Exception Handling
Exception-Handling Fundamentals
Exception Types
Uncaught Exceptions
Using try and catch
Displaying a Description of an Exception
Multiple catch Clauses
Nested try Statements
throw
throws
finally
Java’s Built-in Exceptions
Creating Your Own Exception Subclasses
Chained Exceptions
Three Additional Exception Features
Using Exceptions
Chapter 11 Multithreaded Programming
The Java Thread Model
Thread Priorities
Synchronization
Messaging
The Thread Class and the Runnable Interface
The Main Thread
Creating a Thread
Implementing Runnable
Extending Thread
Choosing an Approach
Creating Multiple Threads
Using isAlive( ) and join( )
Thread Priorities
Synchronization
Using Synchronized Methods
The synchronized Statement
Interthread Communication
Deadlock
Suspending, Resuming, and Stopping Threads
Obtaining a Thread’s State
Using a Factory Method to Create and Start a Thread
Using Multithreading
Chapter 12 Enumerations, Autoboxing, and Annotations
Enumerations
Enumeration Fundamentals
The values( ) and valueOf( ) Methods
Java Enumerations Are Class Types
Enumerations Inherit Enum
Another Enumeration Example
Type Wrappers
Character
Boolean
The Numeric Type Wrappers
Autoboxing
Autoboxing and Methods
Autoboxing/Unboxing Occurs in Expressions
Autoboxing/Unboxing Boolean and Character
Values
Autoboxing/Unboxing Helps Prevent Errors
A Word of Warning
Annotations
Annotation Basics
Specifying a Retention Policy
Obtaining Annotations at Run Time by Use of
Reflection
The AnnotatedElement Interface
Using Default Values
Marker Annotations
Single-Member Annotations
The Built-In Annotations
Type Annotations
Repeating Annotations
Some Restrictions
Chapter 13 I/O, Try-with-Resources, and Other Topics
I/O Basics
Streams
Byte Streams and Character Streams
The Predefined Streams
Reading Console Input
Reading Characters
Reading Strings
Writing Console Output
The PrintWriter Class
Reading and Writing Files
Automatically Closing a File
The transient and volatile Modifiers
Introducing instanceof
strictfp
Native Methods
Using assert
Assertion Enabling and Disabling Options
Static Import
Invoking Overloaded Constructors Through this( )
A Word About Value-Based Classes
Chapter 14 Generics
What Are Generics?
A Simple Generics Example
Generics Work Only with Reference Types
Generic Types Differ Based on Their Type
Arguments
How Generics Improve Type Safety
A Generic Class with Two Type Parameters
The General Form of a Generic Class
Bounded Types
Using Wildcard Arguments
Bounded Wildcards
Creating a Generic Method
Generic Constructors
Generic Interfaces
Raw Types and Legacy Code
Generic Class Hierarchies
Using a Generic Superclass
A Generic Subclass
Run-Time Type Comparisons Within a Generic
Hierarchy
Casting
Overriding Methods in a Generic Class
Type Inference with Generics
Local Variable Type Inference and Generics
Erasure
Bridge Methods
Ambiguity Errors
Some Generic Restrictions
Type Parameters Can’t Be Instantiated
Restrictions on Static Members
Generic Array Restrictions
Generic Exception Restriction
Chapter 15 Lambda Expressions
Introducing Lambda Expressions
Lambda Expression Fundamentals
Functional Interfaces
Some Lambda Expression Examples
Block Lambda Expressions
Generic Functional Interfaces
Passing Lambda Expressions as Arguments
Lambda Expressions and Exceptions
Lambda Expressions and Variable Capture
Method References
Method References to static Methods
Method References to Instance Methods
Method References with Generics
Constructor References
Predefined Functional Interfaces
Chapter 16 Modules
Module Basics
A Simple Module Example
Compile and Run the First Module Example
A Closer Look at requires and exports
java.base and the Platform Modules
Legacy Code and the Unnamed Module
Exporting to a Specific Module
Using requires transitive
Use Services
Service and Service Provider Basics
The Service-Based Keywords
A Module-Based Service Example
Module Graphs
Three Specialized Module Features
Open Modules
The opens Statement
requires static
Introducing jlink and Module JAR Files
Linking Files in an Exploded Directory
Linking Modular JAR Files
JMOD Files
A Brief Word About Layers and Automatic Modules
Final Thoughts on Modules
Chapter 17 Switch Expressions, Records, and Other Recently
Added Features
Enhancements to switch
Use a List of case Constants
Introducing the switch Expression and the
yield Statement
Introducing the Arrow in a case Statement
A Closer Look at the Arrow case
Another switch Expression Example
Text Blocks
Text Block Fundamentals
Understanding Leading Whitespace
Use Double Quotes in a Text Block
Escape Sequences in Text Blocks
Records
Record Basics
Create Record Constructors
Another Record Constructor Example
Create Record Getter Methods
Pattern Matching with instanceof
Pattern Variables in a Logical AND Expression
Pattern Matching in Other Statements
Sealed Classes and Interfaces
Sealed Classes
Sealed Interfaces
Future Directions

Part II The Java Library


Chapter 18 String Handling
The String Constructors
String Length
Special String Operations
String Literals
String Concatenation
String Concatenation with Other Data Types
String Conversion and toString( )
Character Extraction
charAt( )
getChars( )
getBytes( )
toCharArray( )
String Comparison
equals( ) and equalsIgnoreCase( )
regionMatches( )
startsWith( ) and endsWith( )
equals( ) Versus ==
compareTo( )
Searching Strings
Modifying a String
substring( )
concat( )
replace( )
trim( ) and strip( )
Data Conversion Using valueOf( )
Changing the Case of Characters Within a String
Joining Strings
Additional String Methods
StringBuffer
StringBuffer Constructors
length( ) and capacity( )
ensureCapacity( )
setLength( )
charAt( ) and setCharAt( )
getChars( )
append( )
insert( )
reverse( )
delete( ) and deleteCharAt( )
replace( )
substring( )
Additional StringBuffer Methods
StringBuilder
Chapter 19 Exploring java.lang
Primitive Type Wrappers
Number
Double and Float
Understanding isInfinite( ) and isNaN( )
Byte, Short, Integer, and Long
Character
Additions to Character for Unicode Code Point
Support
Boolean
Void
Process
Runtime
Executing Other Programs
Runtime.Version
ProcessBuilder
System
Using currentTimeMillis( ) to Time Program
Execution
Using arraycopy( )
Environment Properties
System.Logger and System.LoggerFinder
Object
Using clone( ) and the Cloneable Interface
Class
ClassLoader
Math
Trigonometric Functions
Exponential Functions
Rounding Functions
Miscellaneous Math Methods
StrictMath
Compiler
Thread, ThreadGroup, and Runnable
The Runnable Interface
Thread
ThreadGroup
ThreadLocal and InheritableThreadLocal
Package
Module
ModuleLayer
RuntimePermission
Throwable
SecurityManager
StackTraceElement
StackWalker and StackWalker.StackFrame
Enum
Record
ClassValue
The CharSequence Interface
The Comparable Interface
The Appendable Interface
The Iterable Interface
The Readable Interface
The AutoCloseable Interface
The Thread.UncaughtExceptionHandler Interface
The java.lang Subpackages
java.lang.annotation
java.lang.constant
java.lang.instrument
java.lang.invoke
java.lang.management
java.lang.module
java.lang.ref
java.lang.reflect
Chapter 20 java.util Part 1: The Collections Framework
Collections Overview
The Collection Interfaces
The Collection Interface
The List Interface
The Set Interface
The SortedSet Interface
The NavigableSet Interface
The Queue Interface
The Deque Interface
The Collection Classes
The ArrayList Class
The LinkedList Class
The HashSet Class
The LinkedHashSet Class
The TreeSet Class
The PriorityQueue Class
The ArrayDeque Class
The EnumSet Class
Accessing a Collection via an Iterator
Using an Iterator
The For-Each Alternative to Iterators
Spliterators
Storing User-Defined Classes in Collections
The RandomAccess Interface
Working with Maps
The Map Interfaces
The Map Classes
Comparators
Using a Comparator
The Collection Algorithms
Arrays
The Legacy Classes and Interfaces
The Enumeration Interface
Vector
Stack
Dictionary
Hashtable
Properties
Using store( ) and load( )
Parting Thoughts on Collections
Chapter 21 java.util Part 2: More Utility Classes
StringTokenizer
BitSet
Optional, OptionalDouble, OptionalInt, and
OptionalLong
Date
Calendar
GregorianCalendar
TimeZone
SimpleTimeZone
Locale
Random
Timer and TimerTask
Currency
Formatter
The Formatter Constructors
The Formatter Methods
Formatting Basics
Formatting Strings and Characters
Formatting Numbers
Formatting Time and Date
The %n and %% Specifiers
Specifying a Minimum Field Width
Specifying Precision
Using the Format Flags
Justifying Output
The Space, +, 0, and ( Flags
The Comma Flag
The # Flag
The Uppercase Option
Using an Argument Index
Closing a Formatter
The Java printf( ) Connection
Scanner
The Scanner Constructors
Scanning Basics
Some Scanner Examples
Setting Delimiters
Other Scanner Features
The ResourceBundle, ListResourceBundle, and
PropertyResourceBundle Classes
Miscellaneous Utility Classes and Interfaces
The java.util Subpackages
java.util.concurrent,
java.util.concurrent.atomic, and
java.util.concurrent.locks
java.util.function
java.util.jar
java.util.logging
java.util.prefs
java.util.random
java.util.regex
java.util.spi
java.util.stream
java.util.zip
Chapter 22 Input/Output: Exploring java.io
The I/O Classes and Interfaces
File
Directories
Using FilenameFilter
The listFiles( ) Alternative
Creating Directories
The AutoCloseable, Closeable, and Flushable
Interfaces
I/O Exceptions
Two Ways to Close a Stream
The Stream Classes
The Byte Streams
InputStream
OutputStream
FileInputStream
FileOutputStream
ByteArrayInputStream
ByteArrayOutputStream
Filtered Byte Streams
Buffered Byte Streams
SequenceInputStream
PrintStream
DataOutputStream and DataInputStream
RandomAccessFile
The Character Streams
Reader
Writer
FileReader
FileWriter
CharArrayReader
CharArrayWriter
BufferedReader
BufferedWriter
PushbackReader
PrintWriter
The Console Class
Serialization
Serializable
Externalizable
ObjectOutput
ObjectOutputStream
ObjectInput
ObjectInputStream
A Serialization Example
Stream Benefits
Chapter 23 Exploring NIO
The NIO Classes
NIO Fundamentals
Buffers
Channels
Charsets and Selectors
Enhancements Added by NIO.2
The Path Interface
The Files Class
The Paths Class
The File Attribute Interfaces
The FileSystem, FileSystems, and FileStore
Classes
Using the NIO System
Use NIO for Channel-Based I/O
Use NIO for Stream-Based I/O
Use NIO for Path and File System Operations
Chapter 24 Networking
Networking Basics
The java.net Networking Classes and Interfaces
InetAddress
Factory Methods
Instance Methods
Inet4Address and Inet6Address
TCP/IP Client Sockets
URL
URLConnection
HttpURLConnection
The URI Class
Cookies
TCP/IP Server Sockets
Datagrams
DatagramSocket
DatagramPacket
A Datagram Example
Introducing java.net.http
Three Key Elements
A Simple HTTP Client Example
Things to Explore in java.net.http
Chapter 25 Event Handling
Two Event Handling Mechanisms
The Delegation Event Model
Events
Event Sources
Event Listeners
Event Classes
The ActionEvent Class
The AdjustmentEvent Class
The ComponentEvent Class
The ContainerEvent Class
The FocusEvent Class
The InputEvent Class
The ItemEvent Class
The KeyEvent Class
The MouseEvent Class
The MouseWheelEvent Class
The TextEvent Class
The WindowEvent Class
Sources of Events
Event Listener Interfaces
The ActionListener Interface
The AdjustmentListener Interface
The ComponentListener Interface
The ContainerListener Interface
The FocusListener Interface
The ItemListener Interface
The KeyListener Interface
The MouseListener Interface
The MouseMotionListener Interface
The MouseWheelListener Interface
The TextListener Interface
The WindowFocusListener Interface
The WindowListener Interface
Using the Delegation Event Model
Some Key AWT GUI Concepts
Handling Mouse Events
Handling Keyboard Events
Adapter Classes
Inner Classes
Anonymous Inner Classes
Chapter 26 Introducing the AWT: Working with Windows,
Graphics, and Text
AWT Classes
Window Fundamentals
Component
Container
Panel
Window
Frame
Canvas
Working with Frame Windows
Setting the Window’s Dimensions
Hiding and Showing a Window
Setting a Window’s Title
Closing a Frame Window
The paint( ) Method
Displaying a String
Setting the Foreground and Background Colors
Requesting Repainting
Creating a Frame-Based Application
Introducing Graphics
Drawing Lines
Drawing Rectangles
Drawing Ellipses and Circles
Drawing Arcs
Drawing Polygons
Demonstrating the Drawing Methods
Sizing Graphics
Working with Color
Color Methods
Setting the Current Graphics Color
A Color Demonstration Program
Setting the Paint Mode
Working with Fonts
Determining the Available Fonts
Creating and Selecting a Font
Obtaining Font Information
Managing Text Output Using FontMetrics
Chapter 27 Using AWT Controls, Layout Managers, and
Menus
AWT Control Fundamentals
Adding and Removing Controls
Responding to Controls
The HeadlessException
Labels
Using Buttons
Handling Buttons
Applying Check Boxes
Handling Check Boxes
CheckboxGroup
Choice Controls
Handling Choice Lists
Using Lists
Handling Lists
Managing Scroll Bars
Handling Scroll Bars
Using a TextField
Handling a TextField
Using a TextArea
Understanding Layout Managers
FlowLayout
BorderLayout
Using Insets
GridLayout
CardLayout
GridBagLayout
Menu Bars and Menus
Dialog Boxes
A Word About Overriding paint( )
Chapter 28 Images
File Formats
Image Fundamentals: Creating, Loading, and
Displaying
Creating an Image Object
Loading an Image
Displaying an Image
Double Buffering
ImageProducer
MemoryImageSource
ImageConsumer
PixelGrabber
ImageFilter
CropImageFilter
RGBImageFilter
Additional Imaging Classes
Chapter 29 The Concurrency Utilities
The Concurrent API Packages
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
Using Synchronization Objects
Semaphore
CountDownLatch
CyclicBarrier
Exchanger
Phaser
Using an Executor
A Simple Executor Example
Using Callable and Future
The TimeUnit Enumeration
The Concurrent Collections
Locks
Atomic Operations
Parallel Programming via the Fork/Join Framework
The Main Fork/Join Classes
The Divide-and-Conquer Strategy
A Simple First Fork/Join Example
Understanding the Impact of the Level of
Parallelism
An Example that Uses RecursiveTask<V>
Executing a Task Asynchronously
Cancelling a Task
Determining a Task’s Completion Status
Restarting a Task
Things to Explore
Some Fork/Join Tips
The Concurrency Utilities Versus Java’s Traditional
Approach
Chapter 30 The Stream API
Stream Basics
Stream Interfaces
How to Obtain a Stream
A Simple Stream Example
Reduction Operations
Using Parallel Streams
Mapping
Collecting
Iterators and Streams
Use an Iterator with a Stream
Use Spliterator
More to Explore in the Stream API
Chapter 31 Regular Expressions and Other Packages
Regular Expression Processing
Pattern
Matcher
Regular Expression Syntax
Demonstrating Pattern Matching
Two Pattern-Matching Options
Exploring Regular Expressions
Reflection
Remote Method Invocation (RMI)
A Simple Client/Server Application Using RMI
Formatting Date and Time with java.text
DateFormat Class
SimpleDateFormat Class
The java.time Time and Date API
Time and Date Fundamentals
Formatting Date and Time
Parsing Date and Time Strings
Other Things to Explore in java.time

Part III Introducing GUI Programming with Swing


Chapter 32 Introducing Swing
The Origins of Swing
Swing Is Built on the AWT
Two Key Swing Features
Swing Components Are Lightweight
Swing Supports a Pluggable Look and Feel
The MVC Connection
Components and Containers
Components
Containers
The Top-Level Container Panes
The Swing Packages
A Simple Swing Application
Event Handling
Painting in Swing
Painting Fundamentals
Compute the Paintable Area
A Paint Example
Chapter 33 Exploring Swing
JLabel and ImageIcon
JTextField
The Swing Buttons
JButton
JToggleButton
Check Boxes
Radio Buttons
JTabbedPane
JScrollPane
JList
JComboBox
Trees
JTable
Chapter 34 Introducing Swing Menus
Menu Basics
An Overview of JMenuBar, JMenu, and JMenuItem
JMenuBar
JMenu
JMenuItem
Create a Main Menu
Add Mnemonics and Accelerators to Menu Items
Add Images and Tooltips to Menu Items
Use JRadioButtonMenuItem and
JCheckBoxMenuItem
Create a Popup Menu
Create a Toolbar
Use Actions
Put the Entire MenuDemo Program Together
Continuing Your Exploration of Swing

Part IV Applying Java


Chapter 35 Java Beans
What Is a Java Bean?
Advantages of Beans
Introspection
Design Patterns for Properties
Design Patterns for Events
Methods and Design Patterns
Using the BeanInfo Interface
Bound and Constrained Properties
Persistence
Customizers
The JavaBeans API
Introspector
PropertyDescriptor
EventSetDescriptor
MethodDescriptor
A Bean Example
Chapter 36 Introducing Servlets
Background
The Life Cycle of a Servlet
Servlet Development Options
Using Tomcat
A Simple Servlet
Create and Compile the Servlet Source Code
Start Tomcat
Start a Web Browser and Request the Servlet
The Servlet API
The jakarta.servlet Package
The Servlet Interface
The ServletConfig Interface
The ServletContext Interface
The ServletRequest Interface
The ServletResponse Interface
The GenericServlet Class
The ServletInputStream Class
The ServletOutputStream Class
The Servlet Exception Classes
Reading Servlet Parameters
The jakarta.servlet.http Package
The HttpServletRequest Interface
The HttpServletResponse Interface
The HttpSession Interface
The Cookie Class
The HttpServlet Class
Handling HTTP Requests and Responses
Handling HTTP GET Requests
Handling HTTP POST Requests
Using Cookies
Session Tracking

Part V Appendixes
Appendix A Using Java’s Documentation Comments
The javadoc Tags
@author
{@code}
@deprecated
{@docRoot}
@exception
@hidden
{@index}
{@inheritDoc}
{@link}
{@linkplain}
{@literal}
@param
@provides
@return
@see
@serial
@serialData
@serialField
@since
{@summary}
{@systemProperty}
@throws
@uses
{@value}
@version
The General Form of a Documentation Comment
What javadoc Outputs
An Example that Uses Documentation Comments
Appendix B Introducing JShell
JShell Basics
List, Edit, and Rerun Code
Add a Method
Create a Class
Use an Interface
Evaluate Expressions and Use Built-in Variables
Importing Packages
Exceptions
Some More JShell Commands
Exploring JShell Further
Appendix C Compile and Run Simple Single-File Programs in
One Step

Index
Exploring the Variety of Random
Documents with Different Content
The Project Gutenberg eBook of The taking of
Cloudy McGee
This ebook is for the use of anyone anywhere in the United States
and most other parts of the world at no cost and with almost no
restrictions whatsoever. You may copy it, give it away or re-use it
under the terms of the Project Gutenberg License included with this
ebook or online at www.gutenberg.org. If you are not located in the
United States, you will have to check the laws of the country where
you are located before using this eBook.

Title: The taking of Cloudy McGee

Author: W. C. Tuttle

Release date: March 4, 2024 [eBook #73091]

Language: English

Original publication: Garden City: Doubleday, Page & Co, 1926

Credits: Roger Frank and Sue Clark

*** START OF THE PROJECT GUTENBERG EBOOK THE TAKING


OF CLOUDY MCGEE ***
The Taking of Cloudy McGee

The Taking of Cloudy McGee


by W. C. Tuttle
Author of “On the Prod,” “The Sundown Prodigal,” etc.

It was easy to see that fate had been kind to Ferdinand P. Putney,
because he was not in jail. In fact, he never had been in jail. But he
was comparatively a young man yet. He was six feet three inches
tall, would weigh about a hundred and forty, and wore a size eleven
shoe.
His face was very long, his eyes pouched, rather inclined to
redness, which gave him the mien of a very old and very wise
bloodhound. His almost yellow hair grew without much opposition
from the barber, and he wore a derby hat of a decided green tinge.
Ferdinand P. Putney was the lawyer of Lost Hills town. The folks
of Lost Hills were not given to carrying their troubles to the law; so
one lawyer was enough. Ferdinand had been many things in his forty
years of life, but that has nothing to do with the fact that he had
studied law—a little.
And there was another rather prominent man in Lost Hills, whose
name was Amos K. Weed. Amos was the cashier of the Lost Hills
bank, mate of his own soul, (Ferdinand P. Putney was the captain)
and a bottle-drinker after working hours.
Amos was a scrawny individual, five feet six inches tall, with a
high, wide forehead, pinched nose, beady eyes and long, slender
fingers. His shoulders were slightly stooped and he shuffled when he
walked. Amos’ life consisted mostly of looking up and down a
column of figures.
But for many years Amos had dreamed of being a great criminal,
a master mind; of smashing through things like a Springfield bullet.
But his .22 caliber soul had held him back. Amos usually figured out
a perfect crime, dreamed that he was about to be hung, and
discarded the plan.
On this certain day Amos closed the bank at a few minutes after
three o’clock. He carried his hat in his hand, and his breathing was
slightly irregular. He fairly slunk away from the bank, shuffling his
feet softly, as though afraid his departure might be heard.
He covered the half-block to Ferdinand P. Putney’s office in record
time, and found the lawyer at his desk, tilted back in a chair, his big
feet atop a pile of dusty books on the desk. Amos slammed the door
behind him and stood there, panting heavily. Ferdinand shifted his
gaze from the book, which he had been reading, and looked
reprovingly upon Amos.
“Well?” queried Ferdinand softly.
“Well!” squeaked Amos. It is likely he intended to thunder, but
Amos’ vocal cords were all of the E-string variety. He came closer to
the lawyer, his Adam’s-apple doing a series of convulsive leaps, as
though trying to break its bounds.
Ferdinand closed the book and waited expectantly for Amos to go
further in his conversation, which he did as soon as he had calmed
his jerking throat.
“Putney!” he squeaked. “We’re ruined!”
Ferdinand Putney slowly lowered his big feet, placed the book on
the table and stood up.
“This?” he said huskily, “is terrible. Just how are we ruined,
Amos?”
“They—they didn’t strike oil!”
“Oh!” Ferdinand stared at Amos.
“You mean—you didn’t strike oil?”
“Us! You got me into it, Putney! You know darn well you did. You
advised me to soak every cent I could get my hands onto in that
Panhandle oil field. You did! You did! You did! You⸺”
Ferdinand got into the spirit of the chant and began beating time
on the desk-top.
“And so you did, eh?” said Ferdinand. “How much, Amos?”
“Fuf—forty thousand dollars!”
“I didn’t know you had that much.”
“I—I didn’t!” Amos’ voice went so high it almost failed to register.
Then he whispered, running back down the scale. “It was the bank
money.”
“Mm-m-m-hah,” Ferdinand nodded slowly, wisely. “I’m going to
have a hell of a time keeping you out of jail, Amos.”
“You’re as guilty as I am,” shrilled Amos.
Ferdinand shook his head. “No lawyer was ever put in jail for
giving wrong advice, Amos. But I’ll do my best to defend you as soon
as they put you in jail.”
“You—you wanted your cut out of it,” choked Amos. “That was the
agreement. You hinted that I might take a few dollars from the bank.
I bought a third interest in a well, and they never struck oil. I’ll tell ’em
—the law—that you helped me; that you advised me to steal from
the bank; that you—you⸺”
“If you keep on talking that way, Amos, I won’t defend you.”
“Defend me? You talk like I was already arrested.”
“It probably won’t be long, Amos. Are you sure they’ll miss it?”
“Miss it? There’s only ten thousand in the bank right now, and the
bank examiner is due almost any day.”
“‘We are lost, the captain shouted, as he staggered down the
stairs,’” quoted Ferdinand. “That’s worse than I anticipated, Amos.
You have practically looted the organization, and the Lost Hills
depositors are not the kind that⸺”
“I know that all by heart!” wailed Amos. “They’ll hang me.”
“But there is still ten thousand dollars in the bank,” mused
Ferdinand. “Does Jim Eyton suspect you?”
Eyton was the president of the bank, a big, bluff sort of a person,
who trusted Amos implicitly.
“Not yet,” moaned Amos.
“Hm-m-m-m,” said Ferdinand judiciously. He rested his head on
one hand, thinking deeply.
And as he racked his brain for a solution out of the difficulty, a
man came down the wooden sidewalk, bareheaded, his sleeves
rolled to his elbow. It was Miles Rooney, the editor of the Lost Hills
Clarion, a weekly effort, seven-eighths syndicate matter and one-
eighth sarcastic editorial.
He was a living example of the fact that the Lost Hills Clarion was
not a paying proposition. His sparse hair stood straight up in the
breeze and in one bony hand he clutched a piece of paper.
“What am I going to do?” he demanded, handing the paper to
Ferdinand. “I ask you, Putney.”
Putney read the paper slowly. It said:

Editor of Clarion: I ben redin what you sed about me and i


want you to no your a lier and it aint so ive all way had a firs clas
repitashun amung men and i aint no menis to no budy and
nothin like it and im goin to maik you wish you keep your damn
nose out of my bisnes.
y’rs respy Cloudy McGee.

Putney placed the paper on his desk and squinted at the editor.
“You wrote an editorial on Cloudy McGee, eh?”
“Yes.”
“Do you know him, Mr. Rooney?”
“I do not,” Mr. Rooney flapped his arms dismally. “I don’t need to
know a man of his reputation in order to flay him in print, Mr. Putney.”
“He’s a bad egg,” put in Amos.
“Bad?” Putney lifted his brows. “He’d just as soon kill you as to
look at you. If I was running a newspaper, I’d either say nice things
about a killer, or I’d say nothing.”
“What satisfaction is your opinion to me?” demanded the
harassed editor. “How can we stop him from coming here?”
“We?” Putney shook his head. “He has nothing against me. I have
never seen the man in my life. This is a case for the sheriff—not an
attorney.”
“Sheriff!” The editor spat angrily. “He and I do not speak. I wrote
an editorial about the inefficiency of our sheriff’s office, and⸺”
“Now he won’t help you save your life, eh?”
“It amounts to that, Mr. Putney.”
“You might apologize to Cloudy McGee, Mr. Rooney.”
“I might!” snapped Mr. Rooney. “But when Cloudy McGee meets
me, will he wait long enough to let me do it? The man has a terrible
reputation. Why, there’s a thousand dollars reward for him. Will a
man of his type be satisfied with an apology?”
“It would establish a precedent,” murmured Putney. “Still, there is
only one thing for you to do and that is to wait and see. McGee is a
bank robber, I believe.”
“Exactly.”
“According to that letter, he will be here soon. If I were in your
place, I would shut up shop and go away for a vacation.”
“Couldn’t we get out a restraining order, Mr. Putney?”
“Yes, we could do that. But it is not likely that the sheriff would
serve it. Would you know Cloudy McGee if you saw him?”
“Not at all. No one in Lost Hills has ever seen him.”
“McGee is a gambler,” remarked Amos Weed, who remembered
seeing a general description of McGee on a reward notice. “They
say he’ll bet on anything. You might make him a gambling
proposition, Rooney.”
“Bet him that he can’t hit me three times out of four eh?” retorted
Rooney, as he picked up his letter and went away. Putney knitted his
brows, as in deep thought, while Amos Weed gnawed a finger-nail.
Suddenly the lawyer got an inspiration. He leaned across the desk
so suddenly that Amos almost bit his entire nail off.
“Watch for McGee!” snapped Putney. “You’re in a bad fix, Amos.
You might as well die for a goat as a lamb. You say there is ten
thousand dollars left in the bank—in cash. All right. What do I get for
my scheme?”
“For your scheme? Tell it to me, Putney.”
“On a fifty-fifty basis, Amos. If you win, I get half.”
“And if I lose?”
“You’ve already lost, you poor egg.”
“All right,” eagerly. “Fifty-fifty, Putney.”
“That’s a bet, Amos. How soon will the bank examiner come?”
“I don’t know. He’s due any old time.”
“All right. Cloudy McGee is also coming—to kill Miles Rooney. You
see McGee before he kills Rooney. Not that we care what he does to
Rooney, you understand; but he must postpone it.
“McGee is our meat. Watch for him, Amos. And as soon as you
see him, bring him to me. But do this secretly. If there’s any killing
going on—remember I’m a lawyer, not a target.”
“I’m no target either,” declared Amos. “I don’t know Cloudy
McGee, but I’ll do my best. You’ve got to get me out of this. I took
your advice once—and lost.”
“This is a cinch,” assured Putney. “Just let me get at McGee.”

Twenty miles south of Lost Hills was the town of Salt Wells, from
which place a stage line ran to Lost Hills. In a dingy little room at Salt
Wells’ only hotel, two men sat at a table playing poker. It was early in
the evening, and both men were too interested in the game to light a
lamp.
One man was tall and lean, with deep-set eyes and a long, damp-
looking nose. He breathed through his mouth, and regularly he
wiped a long, gnarled finger across his nose, in lieu of a
handkerchief.
The other man was also fairly tall, but not so thin. His face was
also tanned, but his fingers were more nimble with the cards. He
seemed greatly amused over his good luck. On the table between
them was a cartridge-belt and holstered Colt six-shooter, and a
scattering of currency.
The man with the bothersome nose spread his hand, his watery
eyes triumphant. But the other man spread his hand, and without a
word he picked up the belt, gun and money.
“Anything else?” asked the winner.
“Nobe,” The other man got heavily to his feet. “I’be cleaged.”
“All right, pardner. It was a good game eh?”
“Good gabe for you.”
The winner smiled and left the room, a huge sombrero, with an
ornate silver band, tilted rakishly over one eye. The loser looked
gloomily after him, flirting a forefinger across his nose. He dug in a
pocket and took out several little bottles and boxes, which he studied
closely. Each and every one was a guaranteed cure for colds.
He selected a tablet from each receptacle, put them in his big
mouth and took a big drink from a broken-handle pitcher. Then he
put on a derby hat, yanked it down around his ears, and went heavily
down the hall and into the street.
For several moments he stood on the wooden sidewalk, looking
up and down the street, before crossing to the Road Runner saloon,
where he leaned against the bar. The sleepy-eyed bartender shuffled
around behind the bar and waited for the order.
“Rog and rye,” thickly.
The bartender placed the bottle and glasses on the bar and
watched the man toss off a full glass of the sweet whisky.
“Yo’re the only man I ever seen that drank rock and rye all the
time,” observed the bartender. “Got a cold?”
“I hab. It’s killid be by idches—dab id!”
He sneezed violently, clinging to the bar with both hands. When
he looked up there was a great fear in his eyes.
“Why don’tcha take somethin’ for it?” asked the bartender.
“Take sobedig? I’ve tried id all.” He shivered, and poured out
another drink.
“Had it long?”
“Nod this wod. Sobe day I’ll ged pneumodia and die—dab id.”
“A feller don’t last long when he gets that,” declared the bartender
hollowly. The sufferer shook his head, shivered and sneezed.
“You ought to take care of yourself, pardner.”
“No use,” wearily. “I’be fought id all by life. It’ll ged be sobe day—
dab it.”
“It kinda takes the joy out of life, when yuh know darn well it’ll get
yuh in the end,” sympathized the bartender.
“Pneumodia is bad,” nodded the man tearfully. “Shuds off your
wid.”
“Why don’tcha see a doctor?”
“Nobe.”
“Scared?”
“Whad you don’t know won’t hurd yuh.” He poured out another
drink of sweet whisky, shuddered violently, ran a finger across his
nose and buttoned up his collar.
“How far is id to Lost Hills?”
“About twenty miles north of here.”
“Thang yuh.”
The man with the pneumonia complex went out into the night and
approached a hitch-rack, where several riding horse-were tied. After
looking them over he selected a tall sorrel. Loosening the cinch, he
removed the blanket, mounted and rode north, wearing the blanket
around his shoulders, holding it tightly around his throat. He sneezed
several limes, as though bidding Salt Wells good-by, and faded away
in the darkness.

Amos Weed was not to be caught napping. There were not many
strangers ever seen in Lost Hills, but Amos spotted one that night.
He was rather tall, slender, but was not dressed conspicuously.
Amos dogged him from place to place, wondering if this could
possibly be Cloudy McGee.
The stranger went from game to game in the War Path saloon,
showing only a mild interest in the gambling. He picked up a billiard
cue and spent an hour or so knocking the balls about the old pool
table, paying no attention to anyone, while Amos humped in a chair,
watching him closely.
He followed the stranger to the Chinese restaurant and watched
him. This man wore no gun in sight. He seemed of a serious
disposition, ate heartily, which was something Amos had been
unable to do since he had heard of the well failure. He knew it must
be a failure, when they did not strike oil within the four thousand foot
depth.
The stranger left the restaurant and sauntered around the street,
with Amos following him at a distance. Miles Rooney was getting out
his weekly edition, and several interested folks were watching the flat
printing press through the Clarion window. The stranger stopped and
watched the operation.
Amos came in beside him, also watching the operation.
“Pretty slick, the way it prints ’em, eh?” said the cashier. The
stranger nodded.
“Stranger in Lost Hills?” asked Amos.
The man nodded quickly. “Just came in today.”
“Going to stay with us a while?”
“No, I don’t think so. At least, not long.”
“Drummer?”
“No-o-o-o. Bank examiner.”
“Oh.” Amos dropped the subject and got away as fast as possible.
This was terrible, he thought. If the bank examiner was in town,
tomorrow his theft would be discovered. Amos felt of the knot which
was already galling his left ear.
Then he galloped down to Putney’s house, almost fell in through
the front door, and blurted out the news.
“I tell you, we’re sunk, Putney!”
“You are, you mean,” indignantly.
“O-o-o-o-oh, hell!” wailed Amos. “I might as well blow out my
brains, I suppose.”
“Well,” said Putney judiciously, “it might save complications. Might
be safer to shoot the examiner.”
“But I can’t shoot straight, Put! You sure advised me into a lot of
misery. What’ll I do?”
“Give yourself up.”
“And get hung?”
“Start running.”
“Run where? I haven’t got enough money to make a getaway.”
“Well, you can shoot straight enough to kill yourself, can’t you?”
“Oh, you’re a hell of a lawyer! Didn’t you ever give any good
advice to anybody?”
“This ain’t a point of law, Amos—this is emergency.”
“Uh-huh. You sure are good in emergencies. Give up, run, or
shoot myself. Any damn fool could give that advice.”
“Then keep on looking for Cloudy McGee. That’s your last chance.
He might show up, you know.”
“Where there’s life there’s hope,” sighed Amos. “I’ll do it. In the
meantime, you think of something, Put.” Amos went back to the
street, hoping against hope.

Amos Weed was the first one to spot the stranger with the big hat
and the silver-studded hat-band. He remembered that the reward
notice had mentioned the fact that Cloudy McGee wore that kind of a
hat. Amos was both frightened and thrilled. He saw the stranger go
into the War Path saloon; so he went to the hitch-rack and looked at
the stranger’s horse.
On the back of the saddle cantle was the single initial M, in a
silver letter. M must stand for McGee, reasoned Amos. He rather
thrilled at the thoughts of meeting a man like Cloudy McGee, who
flaunted his big hat and an initialed saddle before all the sheriffs,
who would be only too glad of a chance to gather him in and collect
the thousand dollar reward.
Amos sauntered back to the saloon door, and met the stranger,
who was just coming out. He glanced sharply at Amos and started
across the street, with Amos trotting at his heels. The man stopped
and looked at Amos. It was dark out there, and Amos’ knees smote
together, but he summoned up his remaining nerve.
“Mr. McGee, can I talk with you for a minute?” he said.
The tall stranger started slightly. “What about?”
“Business,” Amos swallowed heavily. “But not here in the street,”
he hastened to say. “Nobody knows who you are, except me. But
you shouldn’t wear that big hat, you know.” It pleased Amos to give
advice to Cloudy McGee.
But McGee didn’t seem to mind. He waited for Amos Weed to
continue.
“You follow me,” said Amos. “I want you to meet a friend of mine.”
“Just a moment,” said Cloudy McGee. “What’s the game?”
“The game,” said Amos nervously, “is to make some easy money
for you.”
“Easy money, eh? Say, I don’t believe I know you.”
“I’m all right,” quavered Amos. “I’m cashier of the Lost Hills bank.”
“I see. All right.”
They went to the sidewalk and headed down the street to where
Ferdinand P. Putney kept bachelor hall in a little two-room building,
just off the street, on the south end of town.
It was a great thrill for Amos, to walk with Cloudy McGee, on
whose head was a thousand dollars reward. Cloudy stopped to light
a cigarette, and Amos shivered as the match illuminated McGee’s
ornate sombrero. Amos was afraid that Jim Potter, the sheriff, might
see him.
A man was coming up the street toward them, but Amos did not
know who it was. The man watched Amos and Cloudy McGee go in
the front door of Ferdinand P. Putney’s home. Against the lamplight it
was easy for this man to see the huge sombrero.
The man sneezed several times, cleared his throat raspingly and
walked over toward Putney’s front door. It was the man who had
stolen the horse in Salt Wells. He had ridden almost to Lost Hills and
turned the horse loose, not wishing to be arrested for horse stealing.
Ferdinand P. Putney drew up three chairs, after shaking hands
with Cloudy McGee.
“I—we were looking for you, Mr. McGee,” said Putney. “Mr.
Rooney, the editor of the Lost Hills Clarion, said you were coming to
—er—see him soon.”
Cloudy McGee nodded indifferently, and Amos mentally decided
that the killing of an editor was merely an incident in the life of such a
man as Cloudy McGee.
“You are a man of action,” said Putney, looking upon McGee with
considerable favor. “What would you do for a thousand dollars?”
McGee grinned. “All depends.”
“I’m going to lay my cards on the table,” said Putney. “A man of
your caliber appreciates honesty.”
“Such is my reputation,” nodded McGee.
“All right.” Putney stretched out his legs and squinted at Amos,
who was not at ease. “Our friend here, is cashier of the Lost Hills
bank. Some time ago he stumbled upon a flattering oil proposition.”
“Now, don’t lie about it, Put,” wailed Amos. “You advised me to put
every cent⸺”
“If you will pardon me, I will tell Mr. McGee the story, Amos.”
“Well, don’t leave yourself out, Putney.”
“As I said before, Mr. Weed saw the possibilities of this
investment, and, not having sufficient funds of his own, he took forty
thousand of the bank money, in order to take a third interest in the
Panhandle Number 7 well, a Texas oil company. It promised
enormous returns. Today he received a communication to the effect
that at a depth of four thousand feet, they have struck nothing. The
average depth of that field is much less.
“It puts my friend in a bad position. The depositors of this bank are
not of a forgiving nature, and in the event of an embezzlement it is
doubtful whether the law would ever have a chance to pronounce
sentence upon Amos Weed.”
“They’d lynch him, eh?” asked Cloudy McGee heartlessly.
Amos shivered.
“I am doing my best to save my friend’s life,” continued Putney.
“The forty thousand is gone. And the only way we can explain the
loss is to have the bank robbed. You know how to do things like that,
Mr. McGee. There is already a thousand dollar reward for your
arrest; so another robbery won’t make much difference to you one
way or the other.”
“Well?” queried McGee thoughtfully. “How much do I get?”
Ferdinand P. Putney did some mental arithmetic. He knew there
was ten thousand dollars in the bank. It would be just as simple to
make this a fifty thousand dollar robbery as a forty thousand dollar
robbery—and there would be ten thousand to split between himself
and Amos.
“Suppose,” he said, “that we give you a thousand dollars. You
don’t need to pull off a regular robbery; just come in the front door,
fire a few shots, run out the back door, get on your horse and beat it.
As you go through we’ll hand you the one thousand.”
McGee shook his head quickly. “You might hand me a package of
nails.”
“Oh, I see. You think we might not hand you the money.”
“Be a fool if you did, Putney.”
Putney turned his head and considered Amos.
“Don’t look at me,” wailed Amos. “I’ve got no thousand.”
“I guess that’s no lie,” Putney turned again to McGee.
“How do I know you’d do the job?”
“You don’t. But you’ve got to take some risk.”
“How about you?”
“I take plenty, don’t you think? I’ve got to outrun the sheriff.”
“That’s true,” nodded Putney. He turned to Amos. “If I give Mr.
McGee a thousand dollars, you’ve got to make good with me,
Amos.”
“I will,” whispered Amos. “All I want is to get out of this mess.”
Ferdinand P. Putney went into the next room. He did not trust the
bank, because he knew Amos Weed too well. In a few moments he
came back, carrying a thousand dollars in currency, which he
counted out to Cloudy McGee.
“I’m banking on your honesty,” said Putney. McGee pocketed the
bills.
“No one can ever say I was crooked in business,” he said. “When
is this deal to be pulled off?”
“Tomorrow morning at exactly ten o’clock. There hasn’t been a
customer in that bank at ten o’clock for months. Am I right, Amos?”
“You’re right,” whined Amos. “Nobody ever comes in that early.”
Cloudy McGee shook hands with them on the deal and left the
house, promising Amos Weed to keep his big sombrero out of sight.
“Well,” sighed Amos, “that’s settled. If the sheriff does kill Cloudy
McGee, he won’t squeal on us, Putney.”
“He better not,” grinned Putney. “But the deal ain’t all finished,
Amos. You go down to the bank and take out every cent of that ten
thousand dollars. Nobody is goin’ to wonder if you go in there this
time of night, because you often work late.”
“You—you mean I’m to swipe that money, Putney?”
“Sure thing. We split it two ways—I take six thousand and you
take four.”
“Aw-w-w-w-w, what kind of a split is that? We were to go fifty-fifty.”
“That’s all right. I get a commission for putting the deal over, don’t
I? That thousand I gave him, I gave for you. It was just a loan, Amos.
Take it or leave it.”
“Aw, I’ll take it, Putney. I hope he don’t fall down on the job.”
“He’s a heaven-sent angel, Amos. Now, you go and get that
money and bring it up here.”
Amos went, but he went reluctantly. As he left the house he did
not know he was being followed by the wet-nosed stranger, who had
listened, with an ear glued to one of Putney’s window panes.
It was not difficult for Amos to enter the bank and come out with
the money. At that time of night there were very few people on the
streets of Lost Hills. He had the money in a gunnysack and carried it
concealed as much as possible with his coat.
He came down the sidewalk, past the doorway of an old shack,
when a big man pounced upon him, forcibly took the sack away from
him, and sent him spinning with a punch on the jaw. Amos saw stars
that the Lick Observatory had never dreamed of seeing, and when
he awoke he was all alone and very sad.
Conscious of the fact that he had been robbed and knocked out,
he staggered to Putney’s place, fell inside the house and gasped out
his story. Putney’s consternation and wrath knew no bounds.
He fairly danced in his anger, while little Amos held his jaw and
stared red-eyed at the wall.
“Cloudy McGee double-crossed us!” swore Putney. “He knew we’d
do this, the dirty pup. Well,” Putney waved his arms in desperation,
“we’ll have to kill McGee and get that money.”
“You do it,” said Amos wearily. “You can have my part of it. My
Lord, that man is strong!”
“But don’t you see where it puts us?” wailed Putney. “He’s got all
the money—eleven thousand. He don’t have to rob the bank now.”
“But he swore he’d do it, Putney,” Amos grasped at any old straw.
“He didn’t promise not to rob us.”
“Well, if you can get any satisfaction out of that,” said Putney.
“Anyway, it leaves me holding the sack. I’ve got nothing to gain, even
if he keeps his word. I’m out a thousand. All it’ll do is to save your
hide.”
“Well, isn’t that enough, Putney?”
“I wouldn’t give a thousand dollars for you, guts, feathers and all.
I’ve sure bought something—I have.”
“Aw-w-w-w, it may turn out all right, Putney. Look at the jaw I’ve
got on me, will you?”
“I don’t care anything about your jaw Go on home. When he robs
that bank. I’m going to—” Putney hesitated.
“What are you going to do?”
“That’s my business. Now go home.” Amos went. And as he
hurried home he noticed a light in the living-room of the sheriff’s
home.
Perhaps at any other time Amos would not have given this a
thought, but just now his nerves were in such a state that everything
looked suspicious.
The big stranger with the damp nose had engaged a room at a
little hotel, left his bundle there and gone to the War Path saloon,
where he got into a poker game. In a little while Cloudy McGee came
in, bought a drink and tackled the roulette wheel.
Several times the damp-nosed stranger glanced at Cloudy and
found him looking. The first time they nodded, but the other glances
were of suspicion instead of friendship.
“You’ve got a bad cold, stranger,” observed the dealer.
“Yea-a-ah—dab id.”
“You ought to take something for it.”
“I hab,” the stranger swallowed heavily.
“’F I was you I’d see a doctor,” declared one of the players. “I had
a friend that died from pneumonia. Started just like your cold.”
“I thig I’ll see a doctor in the mornig—dab id.”
Amos Weed slept little that night, and he got up in the morning
with his nerves all frazzled out. He did not eat any breakfast. He had
heard of condemned criminals eating a hearty breakfast just before
their walk to the gallows, and the very thought of food sickened him.
As he walked toward the bank he met the damp-nosed stranger,
with the derby hat crushed down over his head. He sneezed just
before they met, and Amos jerked as though someone had fired a
gun.
“I’m lookig for the doctor,” said the big man thickly.
Amos sighed visibly and audibly, as he pointed out the doctor’s
residence.
“Thag yuh,” nodded the sufferer, and went on. Amos looked after
him, wondering who he was, and then went on to the bank. It was
about ten minutes of ten, when Amos opened the doors and went in,
closing them behind him. The bank did not open until ten o’clock.
Amos looked out the front windows, his heart pounding against his
ribs. It was within ten minutes of the time that would see him saved
or sunk. He went to the rear door, throwing back the heavy bolts,
which would give Cloudy McGee a chance to make his getaway, if
he were still going to carry out his plan.
A glance showed that McGee’s horse was behind the bank. Amos
Weed’s hopes arose like a well-filled balloon. At least Cloudy McGee
was shooting square. Then he saw Ferdinand P. Putney coming
down the alley behind the street, carrying a double-barrel shotgun.
Amos closed the door, peeking through a crack, watching Putney,
who came in behind the bank.
He looked all around. A huge packing case and several smaller
boxes gave him a hiding place, into which he crawled. Amos drew
away from the door, his eyes squinting painfully. It was evident to
him that Ferdinand P. intended to intercept Cloudy McGee and try to
get back his money.
And Amos realized that Putney was going to ruin the whole
scheme. If Cloudy was forced to stop and argue the case with
Putney, it would give the sheriff time to catch him, and then there
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookmass.com

You might also like