一:
import java.io.*;
class FileReader
{
public static void main(String[] args)
{
FileReader fr = null;
try
{
fr = new FileReader("nihao.txt");
char[] c = new char[1024];//1024又是怎么定义的?求详细,
//上次了问了不是很清楚,希望详细点。谢谢
int num = 0;
while((num = fr.read(c))!=-1)
{
System.out.println(new String(c,0,num));
}
}
catch(IOException e)
{
System.out.println("catch:"+e.toString());//throw new IOException("出错了");我这里这样抛为什么不对啊,该怎么抛。
}
finally
{
try
{
if(fr!=null)
fr.close();
}
catch(IOException e)
{
System.out.println("catch:"+e.toString());//这里的new String是将数组c变成字符串,
//为什么这么new,是String的构造函数?
}
}
}
}
二:
public static void copy_1()throws IOException
{
//创建目的地。
FileWriter fw = new FileWriter("RuntimeDemo_copy.txt");
//与已有文件关联。
FileReader fr = new FileReader("RuntimeDemo.java");
int ch = 0;
while((ch=fr.read())!=-1)
{
fw.write(ch);
}
fw.close();
fr.close();
}
这是day18将C盘一个文本文件复制到D盘。
首先要明确目的地,这跟我可以理解的因为要先有目的地然后才可以复制过去,
可是下面day19通过缓冲区复制一个文件,为什么它没有先明确目的而是先创建了
与文件关联的流,这是为什么???
/*
通过缓冲区复制一个.java文件。
*/
import java.io.*;
class CopyTextByBuf
{
public static void main(String[] args)
{
BufferedReader bufr = null;
BufferedWriter bufw = null;
try
{
bufr = new BufferedReader(new FileReader("BufferedWriterDemo.java"));
bufw = new BufferedWriter(new FileWriter("bufWriter_Copy.txt"));
String line = null;
while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
}
catch (IOException e)
{
throw new RuntimeException("读写失败");
}
finally
{
try
{
if(bufr!=null)
bufr.close();
}
catch (IOException e)
{
throw new RuntimeException("读取关闭失败");
}
try
{
if(bufw!=null)
bufw.close();
}
catch (IOException e)
{
throw new RuntimeException("写入关闭失败");
}
}
}
}
|