【Java从入门到放弃】第五章·java中IO流操作

文件的读取:

public static void ReadFile(File file){

try {

FileInputStream fis = new FileInputStream(file);

InputStreamReader isr = new InputStreamReader(fis, "UTF-8");

BufferedReader br = new BufferedReader(isr);

String str;

while((str=br.readLine())!=null){

System.out.println(str);

}

System.out.println("done");

br.close();

isr.close();

fis.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

文件的写入:

public static void ReadFile(File file){

try {

FileOutputStream fos = new FileOutputStream(file);

OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK");

BufferedWriter bw = new BufferedWriter(osw);

bw.write("你是一头猪\n");

bw.write("一头大笨猪\n");

bw.close();

osw.close();

fos.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

注意文件编码问题

 

使用字节流读写文件:

public static void ReadFile(File file){

try {

FileInputStream fis = new FileInputStream(file);

FileOutputStream fos = new FileOutputStream(new File("123.txt"));

byte bt[] = new byte[50];

try {

int n =0;

while(n!=-1){

n = fis.read(bt);

if(n==-1) break;

String str = new String(bt, 0, n,"GBK" );

System.out.println(str);

fos.write(bt, 0, n);

}

} catch (IOException e) {

e.printStackTrace();

}

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

 

带缓冲区的字节流读写文件:

public static void ReadFile(File file){

try {

FileInputStream fis = new FileInputStream(file);

BufferedInputStream bis = new BufferedInputStream(fis,10000000);

FileOutputStream fos = new FileOutputStream(new File("new.mp4"));

BufferedOutputStream bos = new BufferedOutputStream(fos);

byte[] bt = new byte[1000000];

long before = System.currentTimeMillis();

while(bis.read(bt)!=-1){

fos.write(bt);

}

fos.close();

bis.close();

fis.close();

bos.close();

System.out.println(System.currentTimeMillis()-before+"ms");

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

 

字符流读取文件:

public static void ReadFile(File file){

try {

FileInputStream fis = new FileInputStream(file);

InputStreamReader isr = new InputStreamReader(fis);

char str[] = new char[100];

while(isr.read(str)!=-1){

System.out.println(str);

}

isr.close();

fis.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

 

带缓冲区的字符流读取文件:

public static void ReadFile(File file){

try {

FileInputStream fis = new FileInputStream(file);

InputStreamReader isr = new InputStreamReader(fis,"GBK");

BufferedReader br = new BufferedReader(isr);

while(br.readLine() != null){

System.out.println(br.readLine());

}

isr.close();

fis.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

 

面对纯文本的数据,使用FileReader+FileWriter

public static void ReadFile(File file){

FileReader fr = null;

try {

fr = new FileReader(file);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

BufferedReader br = new BufferedReader(fr);

String string;

try {

while((string=br.readLine())!=null){

System.out.println(string);

}

} catch (IOException e) {

e.printStackTrace();

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值