---------------------- <a href="http://edu.youkuaiyun.com"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.youkuaiyun.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
我自己对读取文件并输出方法的总结:
我把各种方法写在了下面的一个程序中
public class ReadFile
{
public static void main(String[] args)throws IOException
{
//writeFile();
//readFile_1();
//readFile_2();
readFile_3();
}
//使用FileIputStream读文本,并用字节数组输出数据
public static void readFile_1()throws IOException
{
FileInputStream fis = new FileInputStream("test.txt");
byte[] buf = new byte[1024];
int len = 0;
while((len = fis.read(buf))!=-1)
{
System.out.println(new String(buf,0,len));
}
fis.close();
}
//使用FileIputStream读文件,一个字符一个字符的输出
public static void readFile_2()throws IOException
{
FileInputStream fis = new FileInputStream("test.txt");
int len = 0;
while((len = fis.read())!=-1)
{
System.out.println((char)len);
}
fis.close();
}
//使用FileIputStream的available()方法获取文本的大小
public static void readFile_3()throws IOException
{
FileInputStream fis = new FileInputStream("test.txt");
int num = fis.available();
byte[] buf = new byte[num];//定义一个刚刚好的字节缓冲区,不需要用循环了
fis.read(buf);
System.out.println(new String(buf));
System.out.println(num);
fis.close();
}
//使用FileIputStream创建并把数据写入文件
public static void writeFile()throws IOException
{
FileOutputStream fos = new FileOutputStream("test.txt");
fos.write("uvwxyz".getBytes());
fos.close();
}
}
复制一个图片
思路:
1、用字节读取流对象和图片关联
2、用字节写入流对象创建一个图片文件,用于存储获取到的图片数据
3、通过循环读写,完成数据的存储
4、关闭资源
public class CopyImg
{
public static void main(String[] args)
{
//创建文件输入字节流fis
FileInputStream fis = null;
//创建文件读取字节流fos
FileOutputStream fos = null;
try
{
//把图片加载到输入流中
fis = new FileInputStream("刘少康.jpg");
//创建目的文件
fos = new FileOutputStream("lsk.jpg");
//创建字节数组
byte[] buf = new byte[1024];
int len = 0;
//循环把源文件数据写入目的文件中
while((len = fis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
}
catch(IOException e)
{
//异常处理
System.out.println("复制失败!");
}
finally
{
//整个finally都是在关流
if(fis!=null)
try
{
if(fis!=null)
fis.close();
}
catch(IOException e)
{
throw new RuntimeException(e.toString());
}
try
{
if(fos!=null)
fos.close();
}
catch(IOException e)
{
throw new RuntimeException(e.toString());
}
}
}
}
演示MP3的复制,通过缓冲区
bufferedOutputStream
bufferedInputStream
代码如下:
public class CopyMP3
{
public static void main(String[] args)throws IOException
{
//创建输入缓冲流,把文件读取进来
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("1.mp3"));
//创建输出缓冲流,用来向流中写入数据
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("2.mp3"));
int len = 0;
//循环把源mp3写入目的mp3
while((len = bis.read())!=-1)
{
bos.write(len);
}
bis.close();
bos.close();
}
}
鉴于把这些都写在一个博客中不便于以后用到时翻看,所以把这些小练习分开来写。
---------------------- <a href="http://edu.youkuaiyun.com"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.youkuaiyun.com"target="blank">.Net培训</a>、期待与您交流! ----------------------