字节流
字节流的输出流
FileInputStream类
写出数组 和数据追加
package demo01;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
public class demo02InputStrean {
public static void main(String[] args) throws IOException {
//1、创建FileInputStream对象,构造方法中绑定要读取的数据
FileInputStream fis= new FileInputStream("a.txt");
//byte[] bytes =new byte[2];
//int len= fis.read(bytes);//
//System.out.println("读取到的长度"+len);
/*System.out.println(bytes);
System.out.println(bytes[0]);//取出数组的值
System.out.println(bytes[1]);
System.out.println(Arrays.toString(bytes));*/
//System.out.println(new String(bytes));
/* len= fis.read(bytes);//67、43
System.out.println("读取到的长度"+len);
System.out.println(new String(bytes));
len= fis.read(bytes);
System.out.println(len);
System.out.println(new String(bytes));
len= fis.read(bytes);//44、45
System.out.println("读取到的长度"+len);
System.out.println(new String(bytes));
len= fis.read(bytes);//46、45
System.out.println("读取到的长度"+len);
System.out.println(new String(bytes));//两个字节
*/
//
byte[] bytes =new byte[9];
int len =0;
while((len=fis.read(bytes))!=-1) {
System.out.println(len);
System.out.println(new String(bytes));
}
//
fis.close();
}
}
结果是
5
cdefg
字节流的输入流(InputStream)
package demo01;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class InputStrean {
public static void main(String[] args) throws IOException {
//创建FileInputStream 对象,构造方法
FileInputStream fis= new FileInputStream("a.txt");
/*int len= fis.read();
System.out.println(len);
len= fis.read();
System.out.println(len);
len= fis.read();
System.out.println(len);
len= fis.read();
System.out.println(len);
len= fis.read();
System.out.println(len);
len= fis.read();
System.out.println(len);
len= fis.read();
System.out.println(len);
*/
//2、使用read方法 读取
int len =0;
while((len=fis.read())!=-1) {
System.out.println((char)len);
}
fis.close();
}
}
结果是
c
d
e
f
g
字符流
字符流输入(Reader)
java . io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。
I public void close() :关闭此流并释放与此流相关联的任何系统资源。
public int read() | :从输入流读取一一个字符。
public int read(char[] cbuf) ]:从输入流中读取一些字符,并将它们存储到字符数组cbuf中。
FileReader类
java. io. FileReader类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
构造方法
●I FileReader(File file) J:创建一个新的FileReader ,给定要读取的File对象。
●FileReader(String fileName): 创建一 个新的FileReader ,给定要读取的文件的名称。当你创建一个流对象时,必须传入-个文件路径。类似于FileInputStream 。
1. 读取字符数据
package demo02;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo02Reaber {
public static void main(String[] args) throws IOException {
FileReader fis= new FileReader("D:\\exlipse\\eclipse-workspace\\Day21.java\\a.txt");
/*int len =0;
while((len =fis.read())!=-1) {
System.out.println((char)len);
}*/
char[] cs = new char[14];
int len =0;
while((len =fis.read(cs))!=-1) {
System.out.println(len);
System.out.println(new String(cs));
}
}
}
结果
14
大数据2005班第13号同学
2.使用字符数组读取
package demo02;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo02Reaber {
public static void main(String[] args) throws IOException {
FileReader fis= new FileReader("D:\\exlipse\\eclipse-workspace\\Day21.java\\a.txt");
/*int len =0;
while((len =fis.read())!=-1) {
System.out.println((char)len);
}*/
char[] cs = new char[2];
int len =0;
while((len =fis.read(cs))!=-1) {
//System.out.println(len);
System.out.println(new String(cs));
}
}
}
结果
大数
据2
00
5班
第1
3号
同学
字符输出流(Writer)
| java.io.Writer抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。
void write(int C)写入单个字符。
I void write(char[] cbuf)写入字符数组。
abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一 部分,off数组的开始索引,len写的字符个数。
| void write(String str)写入字符串。
| void write(String str, int off, int len) 写入字符串的某一 部分off字符串的开始索引,en写的字符个数。
void flush() 刷新该流的缓冲。
void close() )关闭此流 ,但要先刷新它。
3.4 FileWriter类
java. io. Filewriter类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
构造方法
! FileWriter(File file) ]:创建一一个新的FileWriter ,给定要读取的File对象。
FileWriter(String fileName):创建一个新的FileWriter,给定要读取的文件的名称。
当你创建一个流对象时,必须传入-一个文件路径,类似于FileOutputStream.
package demo02;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Demo02Wreitre {
public static void main(String[] args) throws IOException {
FileWriter fw= new FileWriter("D:\\exlipse\\eclipse-workspace\\Day21.java\\a.txt");
fw.write(99);//学要被写入的字符还在缓冲区
fw.flush();
fw.write(100);//学要被写入的字符还在缓冲区
fw.flush();
fw.write(101);//学要被写入的字符还在缓冲区
fw.flush();
fw.write(102);//学要被写入的字符还在缓冲区
fw.flush();
fw.write(103);//如果只写一个,直接用close,实际生活中要多次依据
fw.flush();
fw.close();
//fw.write(103);//需要被些人的字符还在缓存区
}
}
结果cdefg