IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。
主要内容:FileInputStream、BufferedInputStream、FileOutputStream、BufferedOutputStream
BufferedInputStream与BufferedOutputStream为字节缓冲流,比起FileInputStream与FileOutputStream来说,它提高了读写速度。
///input.txt
1234adsad786778SAD
12这是ui第1条information
FileInputStream
package 字节流;
import java.lang.String;
import java.io.*;
//字节流-文件字节读入 FileInputStream
//该方式读取文件流时,是以ASCII码读取的,因此输出的是数字,方法2对其进行了char转换,方法3对其进行了string类型转换
public class fileInputStream {
//1,读取文件,不对其进行任何操作,直接输出
public void fileinputstream1(File file)throws Exception{
FileInputStream fileInputStream = new FileInputStream(file);
int i = 0;
//读取文件
while((i = fileInputStream.read())!=-1){
System.out.print(i + " ");
}
System.out.println();
fileInputStream.close();
}
//2.读取文件,将其转换为char类型输出
public void fileinputstream2(File file)throws Exception{
FileInputStream fileInputStream = new FileInputStream(file);
int i = 0;
//读取文件
while((i = fileInputStream.read())!=-1){
System.out.print((char)i + " ");
}
System.out.println();
fileInputStream.close();
}
//将其转换为string类型输出
public void fileinputstream3(File file)throws Exception{
FileInputStream fileInputStream = new FileInputStream(file);
int i = 0;
byte[] bis = new byte[1000];
//读取文件,字节
while((i = fileInputStream.read(bis))!=-1){
System.out.print(new String(bis,0,i)+" ");
}
System.out.println();
fileInputStream.close();
}
}
BufferedInputStream
package 字节流;
import java.lang.String;
import java.io.*;
//字节缓冲输入流BufferedInputStream
public class bufferedInputStream {
//字节流.bufferedInputStream 比 FileInputStream 读取效率更高
public void bufferedinputstream(File file) throws IOException {
InputStream inputStream = new FileInputStream(file);
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
byte[]bis = new byte[1000];
int i = 0;
while((i = bufferedInputStream.read(bis))!=-1) {
System.out.print(new String(bis,0,i)+" ");
}
System.out.println();
bufferedInputStream.close();
}
}
FileOutputStream
package 字节流;
import java.io.File;
import java.io.FileOutputStream;
public class fileOutputStream {
public void fileoutputstream(File file)throws Exception{
FileOutputStream fileOutputStream = new FileOutputStream(file,true);
int i = 0;
fileOutputStream.write("这是1条~来自fileOutputStream的输出8888语句。\t\n".getBytes());
System.out.println("fileOutputStream写入成功");
fileOutputStream.close();
}
}
BufferedOutputStream
package 字节流;
import java.io.*;
public class bufferedOutputStream{
public void bufferedoutstream(File file)throws IOException {
OutputStream outputStream = new FileOutputStream(file,true);
BufferedOutputStream bw = new BufferedOutputStream(outputStream);
bw.write("这是来自bufferedOutputStream的1条消息\t\n".getBytes());
System.out.println("bufferedInputStream写入成功");
bw.close();
}
}
Main
import 字节流.bufferedInputStream;
import 字节流.bufferedOutputStream;
import 字节流.fileInputStream;
import 字节流.fileOutputStream;
import java.io.File;
public class main {
public static void main(String[] args) throws Exception{
//读文件
File file = new File("input.txt");
//字节输入流
System.out.println("-------InputStream---------");
fileInputStream in = new fileInputStream();
in.fileinputstream1(file);
in.fileinputstream2(file);
in.fileinputstream3(file);
System.out.println("-----BufferedInputStream---------");
//字节输入缓存流
bufferedInputStream bm = new bufferedInputStream();
bm.bufferedinputstream(file);
//字节输出流
System.out.println("------OutputStream------------");
File file1 = new File("out.txt");
fileOutputStream fout = new fileOutputStream();
fout.fileoutputstream(file1);
//字节输出缓存流
System.out.println("------BufferedOutputStream----------");
bufferedOutputStream bufferedOutputStream = new bufferedOutputStream();
bufferedOutputStream.bufferedoutstream(file1);
}
}
结果
out.txt文件内容
这是1条~来自fileOutputStream的输出8888语句。
这是来自bufferedOutputStream的1条消息