1.字节输入流
字节输入流
1.Output 输出 写文件 写出去(程序->文件 往外输出)
2.Intput 输入读文件 读进来(文件->程序 输入)
1.OutPutStream 是抽象 是所有输出流的父类
2.一次写入一个字节 一个字节8个二位进制
1.读取文件的布骤
1.绑定数据源文件(要读哪个文件)
2.使用read方法
3.关闭资源
注意:字节流写入的是一个字节一个字节的的写入
读取也是一个字节一个字节的读取.
2.字节流读取内容为hello的long.txt文件
public class text {
public static void main(String[] args) throws IOException {
File file = new File("/Users/lanou/Desktop/test/long.txt");
FileInputStream iStream = new FileInputStream(file);
int i1 = iStream.read();
System.out.println(i1);
i1 =iStream.read();
System.out.println(i1);
i1 =iStream.read();
System.out.println((char)i1);
i1 =iStream.read();
System.out.println((char)i1);
i1 =iStream.read();
System.out.println((char)i1);
iStream.close();
}
}
运行结果:
104
101
l
l
o
-1
结论:结果为-1说名读取到空读取结束
3.构造方法
参数有
1.文件(被写入的文件)
2.文件路径(被写入的路径)
写入文件的路径
1.绑定要写入的文件 或者 文件的路径
2.使用write 方法写入
3.关闭资源
绑定数据的目的地(绑定要写入的文件)
该路径下没有该文件会帮你创建出来
如果已经有了会覆盖掉
public class text {
public static void main(String[] args) throws IOException {
File file = new File("/Users/lanou/Desktop/test/ong.txt");
FileOutputStream oStream = new FileOutputStream(file);
oStream.write(49);
oStream.write(48);
oStream.write(48);
byte[] bs ={65,66,67,68};
oStream.write(bs);
oStream.write(bs,1,2);
oStream.write("www".getBytes());
oStream.write("www".getBytes());
oStream.close();
}
}
运行结果:创建了一个在test文件夹中的ong.txt文件,
并且写入数据内容 100ABCDBCwwwwww
4.文件续写与换行
public class text {
public static void main(String[] args) throws IOException {
File file = new File("/Users/lanou/Desktop/test/ong.txt");
FileOutputStream oStream = new FileOutputStream(file,true);
oStream.write("www\n".getBytes());
oStream.close();
}
}
5.异常处理
public class text {
public static void main(String[] args) throws IOException {
File file = new File("/Users/lanou/Desktop/test/ong.txt");
FileOutputStream oStream = null;
try {
oStream = new FileOutputStream(file);
oStream.write("hel".getBytes());
} catch (FileNotFoundException e) {
throw new RuntimeException("文件找不到");
} catch (IOException e) {
throw new RuntimeException("文件编写失败");
}finally {
try {
if(oStream != null) {
oStream.close();
}
} catch (IOException e) {
throw new RuntimeException("关闭失败");
}
}
}}
##
1.使用数组读取文件
public class text {
public static void main(String[] args) throws IOException {
File file = new File("/Users/lanou/Desktop/test/ong.txt");
FileInputStream iStream = new FileInputStream(file);
byte[] b = new byte[2];
int i1 = iStream.read(b);
System.out.println(i1);
System.out.println(new String(b));
i1 = iStream.read(b);
System.out.println(i1);
System.out.println(new String(b));
i1 = iStream.read(b);
System.out.println(i1);
System.out.println(new String(b));
i1 = iStream.read(b);
System.out.println(i1);
System.out.println(new String(b));
iStream.close();
}}
运行结果:
2
he
2
ll
1
ol
-1
ol
2.循环读取
File file = new File("/Users/lanou/Desktop/test/ong.txt");
FileInputStream iStream = new FileInputStream(file);
int i = 0;
while((i = iStream.read())!= -1) {
System.out.print((char)i);
}
运行结果:
hello