inputStream
是Java提供的最基本的输入流,这个并不是一个接口而是一个抽象类,
这个类中最重要的方法就是 int read() : 读取输入流的下一个字节,并且返回字节表示的int值,返回-1表示到末尾不能继续读取了
inputStream中最常用的一个子类: FileInputStream
顾名思义FileInputStream就是从文件流中读取数据,我们通过一个例子来延时如何完整的读取一个File的所有字节
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
public class TestFileInPutStream {
public static void main(String[] args) {
try {
File file = new File("D:/test/testIO.java");
// 如果文件存在,读取文件中的内容,并在控制台输出
if (file.exists()) {
InputStream in = new FileInputStream(file);
int a = 0;
while ((a = in.read()) != -1) {
System.out.print((char) a);
}
in.close();
} else {
// 如果文件不存在返回文件不存在
System.out.println("文件不存在");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package demo;
import java.io.*;
/**
* @author
*/
public class InputAndOut {
public static void main(String[] args) {
File file = new File("C:\\Users\\Desktop\\hello.txt");
try {
InputStream inputStream = new FileInputStream(file);
while (true) {
int b = inputStream.read();
if (b == -1) {
break;
}
System.out.printf("%c", b);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
outputStream
局限性: 这个方法会写入一个字节到输入流。
对于close的用法 OutputStream和InputStream的用法一样
特别注意:OutputStream提供了一个flush()方法,目的是将缓冲区的内容真正的输出到目的地
其中OutputStream中的子类 FileOutputStream
FileOutputStream的基本用法:
FileOutputStream的例子:将若干字节写入文件流
package demo;
import java.io.*;
import java.nio.charset.StandardCharsets;
/**
* @author
*/
public class InputAndOut {
public static void main(String[] args) {
File file = new File("C:\\Users\\Desktop\\hello.txt");
try {
OutputStream outputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8);
outputStreamWriter.write("比特科技");
outputStreamWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}