使用字节流的方式进行文件的读取并打印至控制台
计算所读取到的字节数,并在控制台打印
package IO;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class Testone {
public static void main(String[] args) {
File file = new File("D:\\HelloWorld.java");
try {
if(file.createNewFile()){
System.out.println("创建文件成功!");
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
StringBuffer sb = new StringBuffer();
if (file.isFile())
{
FileInputStream fileInputStream = null;
try
{
fileInputStream = new FileInputStream(file);
byte[] b = new byte[fileInputStream.available()];
int read = fileInputStream.read(b);//读取
System.out.println(read);
while (read != -1){
sb.append(new String(b));
read = fileInputStream.read(b);
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
2、使用字节流的方式实现文件的复制
将D盘中的HelloWorld.java文件使用字节流的方式复制到D盘下HW.java文件
package IO;
import java.io.Console;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
public class Testtwo {
public void copyFile(String oldFile,String newFile)
{
try{
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldFile);
//判断文件是否存在,如果文件存在则实现该文件向新文件的复制
if(oldfile.exists()){
//读取原文件
InputStream ins = new FileInputStream(oldFile);
//创建文件输出流,写入文件
FileOutputStream outs = new FileOutputStream(newFile);
//创建缓冲区,大小为500字节
byte[] buffer = new byte[500];
//每次从文件流中读取500字节数据,计算当前为止读取的数据总数
while((byteread = ins.read(buffer)) != -1){
bytesum += byteread;
System.out.println(bytesum);
//把当前缓冲区中的数据写入新文件
outs.write(buffer,0,byteread); }
ins.close();
}
else //如果原文件不存在,则扔出异常
throw new Exception();
}catch(Exception ex){
System.out.print("原文件不存在!");
ex.printStackTrace();
}
}
public static void main(String[] args){
//创建类对象实例,并调用copyFile()函数,函数参数在执行程序时刻在控制台输入
//第一个参数表示老文件,第二个参数表示新文件
Testtwo copyfile = new Testtwo();
copyfile.copyFile("D:\\HelloWorld", "D:\\HW.java");
}
}