02.
03.public class MemoryInput {
04.
05. public static void main(String[] args) throws Exception {
06. StringReader in = new StringReader(
07. InputStreamTest.read("src/MemoryInput.java"));
08. int c;
09. while ((c = in.read()) != -1)
10. System.out.println((char) c);
11. }
12.
13.}
import java.io.StringReader;
public class MemoryInput {
public static void main(String[] args) throws Exception {
StringReader in = new StringReader(
InputStreamTest.read("src/MemoryInput.java"));
int c;
while ((c = in.read()) != -1)
System.out.println((char) c);
}
}read返回的是int类型的数据,所以在输出语句中用char做了强类型转换。该程序将一个一个的输出字符。
3、基本的文件输出。
[java]
01.import java.io.BufferedReader;
02.import java.io.BufferedWriter;
03.import java.io.FileWriter;
04.import java.io.PrintWriter;
05.import java.io.StringReader;
06.
07.public class BasicFileOutput {
08.
09. static String file = "basie.out";
10.
11. public static void main(String[] args) throws Exception {
12. BufferedReader in = new BufferedReader(new StringReader(
13. InputStreamTest.read("src/BasicFileOutput.java")));
14. PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(
15. file)));
16. int lineCount = 1;
17. String s;
18. while ((s = in.readLine()) != null) {
19. out.println(lineCount++ + ": " + s);
20. }
21. out.close();
22. System.out.println(InputStreamTest.read(file));
23. }
24.}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringReader;
public class BasicFileOutput {
static String file = "basie.out";
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new StringReader(
InputStreamTest.read("src/BasicFileOutput.java")));
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(
file)));
int lineCount = 1;
String s;
while ((s = in.readLine()) != null) {
out.println(lineCount++ + ": " + s);
}
out.close();
System.out.println(InputStreamTest.read(file));
}
}输出:
1: import java.io.BufferedReader;
2: import java.io.BufferedWriter;
3: import java.io.FileWriter;
…
4、RandomAccessFile
RandomAccessFile被我们称为”自我独立的类”,因为它独立于我们前面说的IO类,与InputStream和OutputStream没什么关系,除了实现了DataOutput, DataInput两个接口外。所有方法都是重新编写,而且很多都是native方法,我们来看个例子,了解下这个类:
5、管道流
八、标准I/O
就是我们最原始的使用的从控制台输入或者输出的那些类和方法,如System.in、System.out等。
[java]
01.public class StandardIO {
02.
03. public static void main(String[] args) throws IOException {
04. BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
05. String s;
06. while ((s = in.readLine()) != null && s.length() != 0)
07. System.out.println(s);
08. }
09.}
public class StandardIO {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s;
while ((s = in.readLine()) != null && s.length() != 0)
System.out.println(s);
}
}System.in返回的是未经包装的InputStream对象,所以需要进行装饰,经InputStreamReader转换为Reader对象,放入BufferedReader的构造方法中。除此之外,System.out和System