欢迎关注头条号: Java 小马哥
周一至周日早九点半!下午三点半!精品技术文章准时送上!!!
精品学习资料获取通道,参见文末
字节输出流:
java. io .OutputStream : 抽象类 ,是表示输出字节流的所有类的父类。
java.io. file OutputStream extends OutputStream: 文件字节输出流。
作用:把内存中的数据写入硬盘文件。
构造方法 : FileOutputStream(String name),创建一个向指定名称的文件写入数据的输出流。
FileOutputStream(File file) ,创建一个向指定File对象的文件中写入数据的输出流。
构造方法的作用:1、创建一个FileOutputStream对象。
2、根据构造方法中的文件/文件路径,创建一个空文件。
3、把FileOutputStream 对象指向该文件。
使用步骤:1、创建FileOutputStream对象。2、write方法写数据。3、释放资源。
write方法:
public class main {
public static void main(String[] args) throws IOException {
File file=new File(“C:\Users\天\Desktop\a.txt”);
FileOutputStream fos=new FileOutputStream(file);
fos.write(12);
fos. close ();
}
}
public class main {
public static void main(String[] args) throws IOException {
File file=new File(“C:\Users\天\Desktop\a.txt”);
FileOutputStream fos=new FileOutputStream(file);
byte [] bytes ={65,66,67};
fos.write(bytes);
fos.close();
}
}
续写和换行写:
续写构造函数:FileOutputStream(String name / File file,boolean append)
append: 续写开关,true 。。。false。。。
换行符号: Windows : rn fos.write(“rn”)
字节输入流:
java.io.InputStream :字节输入流,抽象类,是表示字节输入流的所有类的父类。
java.io. FileInputStream extends InputStream.把磁盘文件读入内存。
构造方法:FileInputStream(String name) FileInputStream(File file)
构造方法作用:1、创建对象,2、把对象指向要操作的文件
使用步骤:1、创建对象。2、read() 3、释放资源。
read() 后 ,指针自动指向下一字节, 结束标记为-1.
一次读取多个字节:
int read(byte[] b) ,从输入流读取一定数量的字节,并存在缓冲区数组b中。
返回的是实际读取到的字节数。
字节流练习:
复制文件:
public static void main(String[] args) throws IOException {
File file =new File(“C:\Users\天\Desktop\a.txt”);
File file1 =new File(“C:\Users\天\Desktop\b.txt”);
FileInputStream fis=new FileInputStream(file);
FileOutputStream fos=new FileOutputStream(file1,true);
byte[] bytes=new byte[2];
int len;
while ((len=fis.read(bytes))!=-1){
fos.write(bytes);
}
fos.close();
fis.close();
}
字符流:
读取中文字符时,由于编码问题,可能会出错,所以,Java提供专门处理文本文件的字符流类。
字符输入流:
java.io.Reader :抽象类,是所有字符输入流的父类。
java.io.FileReader extends InputStreamReader extend Reader.
FileReader: 文件字符输入流,把硬盘文件的数据以字符流的方式读入内存。
构造方法:FileReader(String fileName / File file )
构造方法作用:1、创建FileReader对象。2、指向要读取的文件。
字符输出流:
java.io.Writer: 抽象类, 所有字符输出流的父类。
java.io.FileWriter extends OutputStreamWriter extends Writer.
FileWriter: 文件字符输出流
构造方法:FileWriter(String fileName / File file)
注意:使用write()时,是把数据写入内存缓冲区先,flush()或释放资源时会刷新到文件中。
flush 和 close区别:
flush:刷新缓冲区,流对象可继续使用。close:刷缓冲区后释放资源,流对象不可使用。
字符输出流写数据的其他方法:
void write (char[ ] c) 写入字符数组。
abstract void write (char[ ] c, int off, int len)
void write( String str) 写入字符串。
void write ( String str,int off, int len ) ..
流中异常的处理:
JDK1.7 新特性:
try后可以增加个(),里面可以定义流对象,这个流对象的作用域在try中有效,try执行完后,自动释放。
public static void main(String[] args) {
File file =new File(“C:\Users\天\Desktop\a.txt”);
try (FileWriter fw=new FileWriter(file);){
fw.write(98);
fw.close();
}catch (IOException e){
System.out.println(e);
}
}
JDK9 新特性:
在try前面定义流对象, ()里引入流对象名称 ,try代码结束后,也能释放,不用写finally。
封面图源网络,侵权删除)
私信头条号,发送:“资料”,获取更多“秘制” 精品学习资料
如有收获,请帮忙转发,您的鼓励是作者最大的动力,谢谢!
一大波微服务、分布式、高并发、高可用的原创系列文章正在路上,
欢迎关注头条号:java小马哥
周一至周日早九点半!下午三点半!精品技术文章准时送上!!!
十余年BAT架构经验倾囊相授