一:字节流
字节流主要操作 byte 类型数据,一byte 数组为准,主要操作类时 OutputStream 类 和 InputStream 类。但是,OutputStream 和 InputStream 类都是抽象类,若想使用此类,则首先要通过子类实例化对象,如果现在操作的是一个文件,则可以使用FileOutputStream 和 FileInputStream 类。
字节流的输出和输出时相对于字节流对象来说的,字节输出流,就是对象的中的内容输出,写入文件或者进行别的操作。字节输入流,就是从文件或者别的地方获取内容读入到对象。
1、字节输出流
将一个 String 字符串写入text.txt 文件
范例1:
package haizhu.com.file;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class OutputStreamDemo01 {
public static void main(String[] args) throws Exception{
File f = new File("d:"+File.separator+"text.txt");
OutputStream out = new FileOutputStream(f);
String str = "Hello world !";
byte b[] = str.getBytes();
out.write(b);
out.close();
}
}
如果这个txt文件中有内容,就要使用追加 的方法进行内容的写入,不然就会将原有的内容擦出了,这不是我们想要的,追加内容的方法如下:
范例2:
package haizhu.com.file;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class OutputStreamDemo01 {
public static void main(String[] args) throws Exception{
File f = new File("d:"+File.separator+"text.txt");
OutputStream out = new FileOutputStream(f,true); // true表示追加
String str = "\r\n To learn or not to learn !"; // \r\n 表示换行
byte b[] = str.getBytes();
out.write(b);
out.close();
}
}
2、字节输入流
如何将上面的写入text.txt 文件的内容读取出来呢?看下面:
范例3:
package haizhu.com.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
public class OutputStreamDemo01 {
public static void main(String[] args) throws Exception{
File f = new File("d:"+File.separator+"text.txt");
InputStream input = new FileInputStream(f);
byte b[] = new byte[(int)f.length()]; // 根据文件大小开辟数组空间
int len = input.read(b); // 将内容输出到数组,并返回长度
String str = new String(b,0,len); // 将内容转换为 String
System.out.println("长度:"+len);
System.out.println("内容:"+str);
}
}