IO
字节输入流:
FileInputStream
package ceshi;
import java.io.*;
public class Ceshi {
public static void main(String[] args) {
String fileName1 = "res/a.txt";
String fileName2 = "res/a.txt";
String fileName3 = "res/a.txt";
FileInputStream fis1 = null;
FileInputStream fis2= null;
FileInputStream fis3 = null;
try{
fis1 = new FileInputStream(fileName1);
fis2= new FileInputStream(fileName2);
fis3 = new FileInputStream(fileName3);
int r;
while((r = fis1.read()) != -1){ //一个一个字节的读
System.out.print((char)r); }
System.out.println();
System.out.println("**************************");
byte [] b=new
byte[20];
fis2.read(b); //将读取的数据保存在数组b中
char [] c=new char[20];
for(int i=0;i<b.length;i++)
c[i]=(char)b[i];
System.out.println(c);
System.out.println("**************************");
byte [] d=new byte[20];
fis3.read(d,2,5); //读取五个字节数据,并将数据从数组b下标为2开始保存;
char [] cc=new char[20];
for(int i=0;i<d.length;i++)
cc[i]=(char)d[i];
System.out.print(cc);
}catch(Exception e){
e.printStackTrace();
}
finally{
try{
fis1.close();
fis2.close();
fis3.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
FileOutStream
package ceshi;
import java.io.*;
public class Ceshi {
public static void main(String[] args) {
String fileName1 = "res/b1.txt";
String fileName2 = "res/b2.txt";
String fileName3 = "res/b3.txt";
FileOutputStream out1 = null;
FileOutputStream out2 = null;
FileOutputStream out3 = null;
try{
out1 = new FileOutputStream(fileName1);
out2 = new FileOutputStream(fileName2);
out3 = new FileOutputStream(fileName3);
String str = "hello world";
byte[] bytesArray1 = str.getBytes();
out1.write(bytesArray1);
byte[] bytesArray2 = str.getBytes();
out2.write(bytesArray2,1,3); //只写部分数据
}catch(FileNotFoundException e1){
System.out.println("FileNotFound Exception");
}
catch(IOException e2){
System.out.println("IO Exception");
}
finally{
try{
out1.close();
out2.close();
out3.close();
}catch(IOException e3){
System.out.println("Close Exception");
}
}
}
}
FileWriter
构造方法与FileOutputStream类似
package ceshi;
import java.io.*;
public class Ceshi {
public static void main(String[] args) {
String fileName1 = "res/c1.txt";
String fileName2 = "res/c2.txt";
FileWriter out1 = null;
FileWriter out2= null;
String str = "Hello World!";
String str2="Hello World! 2";
try{
out1 = new FileWriter(fileName1);
out2 = new FileWriter(fileName2);
char[] charArray = str.toCharArray();
out1.write(charArray);//输出字符数组数据;
out2.write(str2); //输出字符串数据
out1.flush();
out2.flush();
}catch(FileNotFoundException e1){
System.out.println("FileNotFound Exception");
}
catch(IOException e2){
System.out.println("IO Exception");
}
finally{
try{
out1.close();
out2.close();
}catch(IOException e3){
System.out.println("Exception");
}
}
}
}
FileReader
构造方法与FileIutputStream类似
package ceshi;
import java.io.*;
public class Ceshi {
public static void main(String[] args) {
String fileName1 = "res/a.txt";
String fileName2 = "res/a.txt";
FileReader fr1 = null;
FileReader fr2 = null;
try{
fr1 = new FileReader(fileName1);
fr2= new FileReader(fileName2);
int r;
while((r = fr1.read()) != -1){ //读取单个字符
System.out.print((char) r);
}
System.out.println();
char [] b=new char[100];
fr2.read(b); //读取数据,并保存在数组中;
System.out.print(b);
}catch(Exception e){
e.printStackTrace();
}
finally{
try{
fr1.close();
fr2.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
字符缓冲流BufferedReader
package ceshi;
import java.io.*;
public class Ceshi {
public static void main(String[] args) {
String fileName = "res/c1.txt";
FileReader fr = null;
BufferedReader br = null;
try{
fr = new FileReader(fileName);
br = new BufferedReader(fr);
String line;
while((line = br.readLine())!= null){ //line中存放每一行的内容;
System.out.println(line);
}
}catch(Exception e){
e.printStackTrace();
}
finally{
try{
br.close();
fr.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}