IO基本概念
IO就是指Input/Output。在Java中,Input是将外部的文件内容内容读到内存,并且以Java提供的某种数据类型表示;而Output则是将Java表示的数据格式输出到文件中。
InputStream
基本概念
InputStream是Java标准库提供的最基本的输入流,在java.io包中。InputStream是一个抽象类,int read()是它最重要的一个方法。
示例代码
(1)读取文件test.txt中的内容并打印:
import java.io.*;
public class TestInput1 {
public static void main(String[] args) throws IOException {
InputStream input = null;
try {
input = new FileInputStream("F:\\test.txt");
int n;
while ((n = input.read()) != -1) {
System.out.println((char)n);
}
} finally {
//finally中加入close()方法保证资源会被释放
if (input != null) { input.close(); }
}
}
}
(2)将test.txt的内容保存到字符串s中:
import java.io.*;
public class TestInput2 {
public static void main(String[] args) throws IOException {
String s;
//这里利用Java 7引入的try(resource)的语法,只需要编写try语句,让编译器自动为我们关闭资源
try (InputStream input = new FileInputStream("F:\\test.txt")) {
s = readAsString(input);
}
System.out.println(s);
}
public static String readAsString(InputStream input) throws IOException {
int n;
StringBuilder sb = new StringBuilder();
while ((n = input.read()) != -1) {
sb.append((char) n);
}
return sb.toString();
}
}
OutputStream
基本概念
OutputStream则是Java标准库提供的最基本的输出流,同样在java.io包中。OutputStream也是一个抽象类,它最重要的方法是void write(int b)。
示例代码
将UTF-8编码的字符写入到文件中:
import java.io.*;
public class TestOutput1 {
public static void main(String[] args) throws IOException {
//使用try(resource)的语法,编译器自动写入finally和close()
try (OutputStream output = new FileOutputStream("F:\\test2.txt")) {
output.write("Good game".getBytes("UTF-8"));
}
}
}