Character Streams
http://java.sun.com/docs/books/tutorial/essential/io/charstreams.html
public class CopyCharacters {
public static void main(String[] args) throws IOException {
FileReader inputStream = null;
FileWriter outputStream = null;
try {
inputStream = new FileReader("xanadu.txt");
outputStream = new FileWriter("characteroutput.txt");
int c;
while ((c = inputStream.read()) != -1) {
outputStream.write(c);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
while ((c = inputStream.read()) != -1) {
Notice that both CopyBytes and CopyCharacters use an int variable to read to and write from. However, in CopyCharacters, the int variable holds a character value in its last 16 bits; in CopyBytes, the int variable holds a byte value in its last 8 bits.
注意加粗的那一部分。CopyBytes和CopyCharacters都用了这个int变量。但是在CopyCharacters里,这个变量字符的值 16 bit 位 也就是 2个 byte ,在CopyBytes里,这个int变量保存了1 byte值,在它的末8位,看来还是有区别的。。。。
Character streams are often "wrappers" for byte streams.
FileReader, for example, uses FileInputStream, while FileWriter uses FileOutputStream.
There are two general-purpose byte-to-character "bridge" streams:
InputStreamReader and OutputStreamWriter.
Use them to create character streams when there are no prepackaged character stream classes that meet your needs. The
sockets lesson in the networking trail shows
how to create character streams from the byte streams provided by socket classes.
InputStreamReader and OutputStreamWriter 就干这事。转包byte stream--> character stream 。sockets 那个url里有演示
http://java.sun.com/docs/books/tutorial/networking/index.html
Line-Oriented I/O
面向行的IO ??
line: a string of characters with a line terminator at the end. A line terminator can be a carriage-return/line-feed sequence ("\r\n"), a single carriage-return ("\r"), or a single line-feed ("\n").
行 \r\n \r \n 3种结束符号 。支持多种结束符。有利于多个平台使用
BufferedReader and PrintWriter. 这2个类有面向行的接口。。
public class CopyLines {
public static void main(String[] args) throws IOException {
BufferedReader inputStream = null;
PrintWriter outputStream = null;
try {
inputStream =
new BufferedReader(new FileReader("xanadu.txt"));
outputStream =
new PrintWriter(new FileWriter("characteroutput.txt"));
String l;
while ((l = inputStream.[b]readLine[/b]()) != null) {
outputStream.println(l);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
outputStream.println(l);
Invoking readLine returns a line of text with the line CopyLines outputs each line using println, which appends the line terminator for the current operating system. This
might not be the same line terminator that was used in the input file.
这段有点意思:注意调用readLine 返回读取文件中的一行。但是输出使用println会加入一个换行符,这个输出的换行符是有操作系统决定的,很可能与文件中这一行的终结符是不一样的。
There are many ways to structure text input and output beyond characters and lines. For more information, see Scanning and Formatting.
除了字符和行这2个操作结构文档的方法,还要很多方法。see Scanning and Formatting.
分享到:
相关推荐
Java IO库包含了大量类和接口,它们分为四类主要流:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和套接字流(Socket Streams)。 1. 字节流:字节流处理单个字节的数据,包括...
在Java中,IO流分为四类:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和缓冲流(Buffered Streams)。字节流处理的是8位的数据单元,而字符流处理的是16位的Unicode字符。对于...
- 字符流(Character Streams) - 输入流(Input Streams) - 输出流(Output Streams) #### 二、基本概念 - **流(Stream)定义**:流是一种用于处理或传输数据的方式,Java 中的流可以是字符流也可以是字节流。 - **...
Java的IO流主要分为两大类:字节流(Byte Streams)和字符流(Character Streams)。字节流包括InputStream和OutputStream家族,它们处理基本的8位字节数据。InputStream用于读取数据,OutputStream用于写入数据。...
它包括字符流(Character Streams)和字节流(Byte Streams),以及用于读写文件、网络通信的类。InputStream和OutputStream是字节流的基类,而Reader和Writer是字符流的基类。此外,还有缓冲流(Buffered Streams)...
在Java中,I/O流分为三大类:字节流(Byte Streams)、字符流(Character Streams)以及数据流(Data Streams)。 1. 字节流: 字节流主要处理单个字节的数据,分为输入流和输出流。如`InputStream`和`OutputStream...
Java提供了丰富的类库来支持不同的流类型,如字节流(Byte Streams)和字符流(Character Streams),以及输入流(InputStreams)和输出流(OutputStreams)。字节流适用于二进制数据,而字符流则用于处理文本数据。...
流可以分为多种类型,包括但不限于字节流(Byte Streams)、字符流(Character Streams)等。 #### 二、字节流(Byte Streams) ##### 1. InputStream与OutputStream简介 - **InputStream**:用于从数据源读取...
Java的I/O系统基于层次化的类结构,主要分为两类:字节流(Byte Streams)和字符流(Character Streams)。字节流以8位字节为基本传输单位,而字符流以Unicode字符为单位。根据数据的流向,又分为输入流和输出流。...
流分为两种主要类型:字节流(Byte Streams)和字符流(Character Streams),它们各自处理数据的方式不同,适用于不同的场景。 字节流是最基础的流类型,主要用于处理二进制数据,如图像、音频文件或任何非文本...
3. **字符与字节流**:Java的输入输出流分为字符流(Character Streams)和字节流(Byte Streams)。字符流处理单个字符,而字节流处理原始字节数据。在处理字符时,需要注意字符编码可能导致的乱码问题,需要正确...
4. **字符流(Character Streams)**: - `Reader`和`Writer`是所有字符输入和输出流的基类。` FileReader`和`FileWriter`是它们的子类,专门用于读写文件中的字符数据。 - `BufferedReader`和`BufferedWriter`...
Java提供了丰富的I/O类库,包括字节流(Byte Streams)和字符流(Character Streams)。字节流处理原始字节数据,如图片、音频或二进制文件,而字符流则针对文本数据,确保字符编码的正确处理。字节流分为输入流和...
Java中的I/O流分为四类:字节流(Byte Streams)和字符流(Character Streams),以及节点流(Stream Nodes)和处理流(Stream Filters)。在学习输入/输出流时,了解这些分类及其用途至关重要。 1. **字节流和字符...
Java I/O流分为四大类:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和缓冲流(Buffered Streams)。字节流处理单个字节的数据,而字符流处理Unicode字符。对象流允许序列化和反...
I/O流分为两大类:字节流(Byte Streams)和字符流(Character Streams)。字节流处理8位字节的数据,而字符流处理16位Unicode字符。java.io包包含了大量类来支持这两种类型的流。 8.1.1 Java I/O流的类层次结构 ...
1. **Java IO流**:Java的IO流提供了读写文件的基础,包括字节流(Byte Streams)和字符流(Character Streams)。在切割文件时,我们通常使用字节流,如FileInputStream和FileOutputStream,因为它们能处理二进制...
2. **字符流(Character Streams)** - 字符流处理单个16位Unicode字符,适合文本数据的传输。Java中的字符流主要有两个基类:`Reader`和`Writer`。`Reader`用于读取字符,`Writer`用于写入字符。例如,`...
2. **流(Stream)**:Java中的I/O流是处理输入/输出的核心工具,包括字节流(Byte Streams)和字符流(Character Streams),以及装饰器模式下的缓冲流、转换流、对象流等。在本项目中,流被用来读取、写入文件,...