PrintStream.java revision f6c387128427e121477c1b32ad35cdcaa5101ba3
1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage java.io; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.nio.charset.Charset; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.AccessController; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Formatter; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.IllegalFormatException; 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Locale; 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.apache.harmony.luni.util.Msg; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.apache.harmony.luni.util.PriviAction; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/** 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Wraps an existing {@link OutputStream} and provides convenience methods for 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * writing common data types in a human readable format. This is not to be 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * confused with DataOutputStream which is used for encoding common data types 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * so that they can be read back in. No {@code IOException} is thrown by this 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * class. Instead, callers should use {@link #checkError()} to see if a problem 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has occurred in this stream. 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class PrintStream extends FilterOutputStream implements Appendable, 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Closeable { 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static final String TOKEN_NULL = "null"; //$NON-NLS-1$ 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * indicates whether or not this PrintStream has incurred an error. 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private boolean ioError; 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * indicates whether or not this PrintStream should flush its contents after 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * printing a new line. 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private boolean autoflush; 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private String encoding; 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final String lineSeparator = AccessController 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .doPrivileged(new PriviAction<String>("line.separator")); //$NON-NLS-1$ 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // private Formatter formatter; 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constructs a new {@code PrintStream} with {@code out} as its target 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. By default, the new print stream does not automatically flush its 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contents to the target stream when a newline is encountered. 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param out 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the target output stream. 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code out} is {@code null}. 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream(OutputStream out) { 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(out); 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out == null) { 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new NullPointerException(); 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constructs a new {@code PrintStream} with {@code out} as its target 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. The parameter {@code autoflush} determines if the print stream 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * automatically flushes its contents to the target stream when a newline is 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * encountered. 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param out 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the target output stream. 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param autoflush 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * indicates whether to flush contents upon encountering a 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * newline sequence. 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code out} is {@code null}. 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream(OutputStream out, boolean autoflush) { 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(out); 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out == null) { 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new NullPointerException(); 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.autoflush = autoflush; 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constructs a new {@code PrintStream} with {@code out} as its target 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream and using the character encoding {@code enc} while writing. The 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * parameter {@code autoflush} determines if the print stream automatically 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * flushes its contents to the target stream when a newline is encountered. 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param out 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the target output stream. 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param autoflush 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * indicates whether or not to flush contents upon encountering a 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * newline sequence. 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param enc 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the non-null string describing the desired character encoding. 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code out} or {@code enc} are {@code null}. 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws UnsupportedEncodingException 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if the encoding specified by {@code enc} is not supported. 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream(OutputStream out, boolean autoflush, String enc) 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws UnsupportedEncodingException { 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(out); 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out == null || enc == null) { 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new NullPointerException(); 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this.autoflush = autoflush; 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!Charset.isSupported(enc)) { 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new UnsupportedEncodingException(enc); 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project encoding = enc; 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constructs a new {@code PrintStream} with {@code file} as its target. The 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * virtual machine's default character set is used for character encoding. 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param file 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the target file. If the file already exists, its contents are 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * removed, otherwise a new file is created. 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws FileNotFoundException 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if an error occurs while opening or creating the target file. 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SecurityException 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a security manager exists and it denies writing to the 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * target file. 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream(File file) throws FileNotFoundException { 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(new FileOutputStream(file)); 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constructs a new {@code PrintStream} with {@code file} as its target. The 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * character set named {@code csn} is used for character encoding. 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param file 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the target file. If the file already exists, its contents are 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * removed, otherwise a new file is created. 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param csn 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the name of the character set used for character encoding. 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws FileNotFoundException 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if an error occurs while opening or creating the target file. 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code csn} is {@code null}. 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SecurityException 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a security manager exists and it denies writing to the 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * target file. 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws UnsupportedEncodingException 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if the encoding specified by {@code csn} is not supported. 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream(File file, String csn) throws FileNotFoundException, 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project UnsupportedEncodingException { 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(new FileOutputStream(file)); 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (csn == null) { 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new NullPointerException(); 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!Charset.isSupported(csn)) { 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new UnsupportedEncodingException(); 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project encoding = csn; 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constructs a new {@code PrintStream} with the file identified by 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code fileName} as its target. The virtual machine's default character 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * set is used for character encoding. 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param fileName 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the target file's name. If the file already exists, its 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contents are removed, otherwise a new file is created. 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws FileNotFoundException 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if an error occurs while opening or creating the target file. 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SecurityException 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a security manager exists and it denies writing to the 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * target file. 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream(String fileName) throws FileNotFoundException { 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this(new File(fileName)); 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constructs a new {@code PrintStream} with the file identified by 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code fileName} as its target. The character set named {@code csn} is 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * used for character encoding. 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param fileName 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the target file's name. If the file already exists, its 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contents are removed, otherwise a new file is created. 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param csn 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the name of the character set used for character encoding. 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws FileNotFoundException 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if an error occurs while opening or creating the target file. 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code csn} is {@code null}. 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SecurityException 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a security manager exists and it denies writing to the 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * target file. 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws UnsupportedEncodingException 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if the encoding specified by {@code csn} is not supported. 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream(String fileName, String csn) 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws FileNotFoundException, UnsupportedEncodingException { 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project this(new File(fileName), csn); 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Flushes this stream and returns the value of the error flag. 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return {@code true} if either an {@code IOException} has been thrown 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * previously or if {@code setError()} has been called; 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code false} otherwise. 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #setError() 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public boolean checkError() { 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out != null) { 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project flush(); 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return ioError; 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Closes this print stream. Flushes this stream and then closes the target 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. If an I/O error occurs, this stream's error state is set to 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code true}. 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public synchronized void close() { 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project flush(); 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out != null) { 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out = null; 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException e) { 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Ensures that all pending data is sent out to the target stream. It also 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * flushes the target stream. If an I/O error occurs, this stream's error 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * state is set to {@code true}. 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public synchronized void flush() { 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out != null) { 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.flush(); 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return; 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException e) { 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Ignored, fall through to setError 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Writes a string formatted by an intermediate {@code Formatter} to the 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * target stream using the specified format string and arguments. For the 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * locale, the default value of the current virtual machine instance is 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * used. 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param format 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the format string used for {@link java.util.Formatter#format}. 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param args 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the list of arguments passed to the formatter. If there are 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * more arguments than required by the {@code format} string, 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * then the additional arguments are ignored. 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return this stream. 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IllegalFormatException 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if the format string is illegal or incompatible with the 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * arguments, if there are not enough arguments or if any other 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * error regarding the format string or arguments is detected. 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code format} is {@code null}. 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream format(String format, Object... args) { 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return format(Locale.getDefault(), format, args); 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Writes a string formatted by an intermediate {@link Formatter} to this 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream using the specified locale, format string and arguments. 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param l 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the locale used in the method. No localization will be applied 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code l} is {@code null}. 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param format 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the format string used for {@link java.util.Formatter#format}. 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param args 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the list of arguments passed to the formatter. If there are 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * more arguments than required by the {@code format} string, 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * then the additional arguments are ignored. 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return this stream. 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IllegalFormatException 326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if the format string is illegal or incompatible with the 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * arguments, if there are not enough arguments or if any other 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * error regarding the format string or arguments is detected. 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code format} is {@code null}. 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream format(Locale l, String format, Object... args) { 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (format == null) { 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new NullPointerException(Msg.getString("K0351")); //$NON-NLS-1$ 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new Formatter(this, l).format(format, args); 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this; 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints a formatted string. The behavior of this method is the same as 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this stream's {@code #format(String, Object...)} method. For the locale, 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the default value of the current virtual machine instance is used. 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param format 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the format string used for 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link java.util.Formatter#format}. 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param args 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the list of arguments passed to the formatter. If there are 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * more arguments than required by the {@code format} string, 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * then the additional arguments are ignored. 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return this stream. 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IllegalFormatException 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if the format string is illegal or incompatible with the 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * arguments, if there are not enough arguments or if any other 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * error regarding the format string or arguments is detected. 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code format} is {@code null}. 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream printf(String format, Object... args) { 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return format(format, args); 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints a formatted string. The behavior of this method is the same as 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this stream's {@code #format(Locale, String, Object...)} method. 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param l 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the locale used in the method. No localization will be applied 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code l} is {@code null}. 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param format 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the format string used for {@link java.util.Formatter#format}. 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param args 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the list of arguments passed to the formatter. If there are 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * more arguments than required by the {@code format} string, 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * then the additional arguments are ignored. 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return this stream. 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IllegalFormatException 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if the format string is illegal or incompatible with the 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * arguments, if there are not enough arguments or if any other 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * error regarding the format string or arguments is detected. 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws NullPointerException 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code format} is {@code null}. 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream printf(Locale l, String format, Object... args) { 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return format(l, format, args); 390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Put the line separator String onto the print stream. 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private void newline() { 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(lineSeparator); 397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified character array 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * to the target stream. 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param charArray 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the character array to print to the target stream. 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(char[] charArray) { 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(new String(charArray, 0, charArray.length)); 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified character to the target 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param ch 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the character to print to the target stream. 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(char ch) { 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(String.valueOf(ch)); 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified double to the target 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param dnum 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the double value to print to the target stream. 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(double dnum) { 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(String.valueOf(dnum)); 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified float to the target 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param fnum 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the float value to print to the target stream. 444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(float fnum) { 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(String.valueOf(fnum)); 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified integer to the target 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param inum 456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the integer value to print to the target stream. 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(int inum) { 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(String.valueOf(inum)); 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified long to the target 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param lnum 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the long value to print to the target stream. 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(long lnum) { 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(String.valueOf(lnum)); 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified object to the target 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param obj 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the object to print to the target stream. 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(Object obj) { 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(String.valueOf(obj)); 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints a string to the target stream. The string is converted to an array 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * of bytes using the encoding chosen during the construction of this 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. The bytes are then written to the target stream with 494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code write(int)}. 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * If an I/O error occurs, this stream's error state is set to {@code true}. 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </p> 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param str 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the string to print to the target stream. 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #write(int) 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public synchronized void print(String str) { 505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out == null) { 506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return; 508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (str == null) { 510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print("null"); //$NON-NLS-1$ 511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return; 512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (encoding == null) { 516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project write(str.getBytes()); 517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project write(str.getBytes(encoding)); 519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException e) { 521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified boolean to the target 527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param bool 530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the boolean value to print the target stream. 531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void print(boolean bool) { 535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(String.valueOf(bool)); 536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the system property 540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code "line.separator"} to the target stream. 541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println() { 545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project newline(); 546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified character array 550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * followed by the system property {@code "line.separator"} to the target 551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. 552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param charArray 554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the character array to print to the target stream. 555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(char[] charArray) { 559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(new String(charArray, 0, charArray.length)); 560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified character followed by 564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the system property {@code "line.separator"} to the target stream. 565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param ch 567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the character to print to the target stream. 568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(char ch) { 572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(String.valueOf(ch)); 573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified double followed by the 577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * system property {@code "line.separator"} to the target stream. 578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param dnum 580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the double value to print to the target stream. 581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(double dnum) { 585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(String.valueOf(dnum)); 586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified float followed by the 590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * system property {@code "line.separator"} to the target stream. 591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param fnum 593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the float value to print to the target stream. 594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(float fnum) { 598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(String.valueOf(fnum)); 599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified integer followed by the 603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * system property {@code "line.separator"} to the target stream. 604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param inum 606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the integer value to print to the target stream. 607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(int inum) { 611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(String.valueOf(inum)); 612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified long followed by the 616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * system property {@code "line.separator"} to the target stream. 617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param lnum 619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the long value to print to the target stream. 620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(long lnum) { 624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(String.valueOf(lnum)); 625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified object followed by the 629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * system property {@code "line.separator"} to the target stream. 630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param obj 632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the object to print to the target stream. 633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(Object obj) { 637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(String.valueOf(obj)); 638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints a string followed by the system property {@code "line.separator"} 642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * to the target stream. The string is converted to an array of bytes using 643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the encoding chosen during the construction of this stream. The bytes are 644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * then written to the target stream with {@code write(int)}. 645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * If an I/O error occurs, this stream's error state is set to {@code true}. 647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </p> 648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param str 650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the string to print to the target stream. 651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #write(int) 652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public synchronized void println(String str) { 655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(str); 656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project newline(); 657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Prints the string representation of the specified boolean followed by the 661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * system property {@code "line.separator"} to the target stream. 662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param bool 664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the boolean value to print to the target stream. 665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #print(String) 666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void println(boolean bool) { 669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project println(String.valueOf(bool)); 670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets the error flag of this print stream to {@code true}. 674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setError() { 678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ioError = true; 679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Writes {@code count} bytes from {@code buffer} starting at {@code offset} 683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * to the target stream. If autoflush is set, this stream gets flushed after 684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * writing the buffer. 685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This stream's error flag is set to {@code true} if this stream is closed 687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * or an I/O error occurs. 688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </p> 689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param buffer 691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the buffer to be written. 692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param offset 693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the index of the first byte in {@code buffer} to write. 694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param count 695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the number of bytes in {@code buffer} to write. 696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IndexOutOfBoundsException 697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code offset < 0} or {@code count < 0}, or if {@code 698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * offset + count} is bigger than the length of {@code buffer}. 699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #flush() 700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void write(byte[] buffer, int offset, int count) { 704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // BEGIN android-changed 705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (buffer == null) { 706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new NullPointerException(Msg.getString("K0047")); //$NON-NLS-1$ 707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // avoid int overflow 709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Exception priorities (in case of multiple errors) differ from 710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // RI, but are spec-compliant. 711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // removed redundant check, used (offset | count) < 0 712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // instead of (offset < 0) || (count < 0) to safe one operation 713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if ((offset | count) < 0 || count > buffer.length - offset) { 714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new ArrayIndexOutOfBoundsException(Msg.getString("K002f")); //$NON-NLS-1$ 715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // END android-changed 717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project synchronized (this) { 718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out == null) { 719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return; 721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.write(buffer, offset, count); 724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (autoflush) { 725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project flush(); 726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException e) { 728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Writes one byte to the target stream. Only the least significant byte of 735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the integer {@code oneByte} is written. This stream is flushed if 736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code oneByte} is equal to the character {@code '\n'} and this stream is 737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * set to autoflush. 738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This stream's error flag is set to {@code true} if it is closed or an I/O 740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * error occurs. 741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </p> 742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param oneByte 744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the byte to be written 745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public synchronized void write(int oneByte) { 749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out == null) { 750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return; 752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.write(oneByte); 755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (autoflush && (oneByte & 0xFF) == '\n') { 756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project flush(); 757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException e) { 759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setError(); 760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Appends the character {@code c} to the target stream. This method works 765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the same way as {@link #print(char)}. 766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param c 768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the character to append to the target stream. 769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return this stream. 770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream append(char c) { 773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(c); 774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this; 775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Appends the character sequence {@code csq} to the target stream. This 779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method works the same way as {@code PrintStream.print(csq.toString())}. 780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * If {@code csq} is {@code null}, then the string "null" is written to the 781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * target stream. 782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param csq 784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the character sequence appended to the target stream. 785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return this stream. 786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream append(CharSequence csq) { 789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (null == csq) { 790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(TOKEN_NULL); 791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(csq.toString()); 793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this; 795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Appends a subsequence of the character sequence {@code csq} to the target 799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * stream. This method works the same way as {@code 800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * PrintStream.print(csq.subsequence(start, end).toString())}. If {@code 801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * csq} is {@code null}, then the specified subsequence of the string "null" 802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * will be written to the target stream. 803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param csq 805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the character sequence appended to the target stream. 806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param start 807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the index of the first char in the character sequence appended 808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * to the target stream. 809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param end 810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the index of the character following the last character of the 811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * subsequence appended to the target stream. 812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return this stream. 813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IndexOutOfBoundsException 814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if {@code start > end}, {@code start < 0}, {@code end < 0} or 815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * either {@code start} or {@code end} are greater or equal than 816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the length of {@code csq}. 817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0 818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PrintStream append(CharSequence csq, int start, int end) { 820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (null == csq) { 821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(TOKEN_NULL.substring(start, end)); 822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project print(csq.subSequence(start, end).toString()); 824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return this; 826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 828