public static void main(String[] args)
{
FileInputStream fis = new FileInputStream("f:\1.jpg");
FileoutputStream fos = new FileoutputStream("f:\cpy1.jpg");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
BufferedWriter br = new BufferedWriter(new InputStreamWriterr(fos)); boolean isend = false;
String str =new String();
while(!isend)
{
str = br.readLine();
bw.write(str,0,str.length);
if(str==null)
isend=true;
}
bw.flush;
br.close;
bw.close;
}
还有一个差不多的PRO:public static void main(String[] args) throws Exception
{
FileReader fr= new FileInputStream("G:\1.jpg");
FileWriter fw = new FileInputStream("G:\cpy1.jpg");; int data; // AA处
while ((data=readFile.read())!=-1)
{
fw.write(data);
}
fw.flush();
fr.close();
fw.close();
}问题1:cpy1.jpg是产生了 但是和1.jpg比大小,老是少0.2K,打开一看,全黑的
问题2:AA处 为什么没有初始化也编译OK?它是MAIN()方法的变量啊,不是类成员啊?
{
FileInputStream fis = new FileInputStream("f:\1.jpg");
FileoutputStream fos = new FileoutputStream("f:\cpy1.jpg");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
BufferedWriter br = new BufferedWriter(new InputStreamWriterr(fos)); boolean isend = false;
String str =new String();
while(!isend)
{
str = br.readLine();
bw.write(str,0,str.length);
if(str==null)
isend=true;
}
bw.flush;
br.close;
bw.close;
}
还有一个差不多的PRO:public static void main(String[] args) throws Exception
{
FileReader fr= new FileInputStream("G:\1.jpg");
FileWriter fw = new FileInputStream("G:\cpy1.jpg");; int data; // AA处
while ((data=readFile.read())!=-1)
{
fw.write(data);
}
fw.flush();
fr.close();
fw.close();
}问题1:cpy1.jpg是产生了 但是和1.jpg比大小,老是少0.2K,打开一看,全黑的
问题2:AA处 为什么没有初始化也编译OK?它是MAIN()方法的变量啊,不是类成员啊?
String有这个属性么
应该是str.lenth()吧
{
FileInputStream fr= new FileInputStream ("G:\\1.jpg");
FileOutputStream fw = new FileOutputStream("G:\\cpy1.jpg"); int data; // AA处
while ((data=fr.read())!=-1)
{
fw.write(data);
}
fw.flush();
fw.close();
fr.close();
}FileReader 和FileWriter是对文本文件操作的类
不能用在二进制文件中。如果用了,就会丢掉那些不是字符的那些byte另外:int data;为什么会不编译通过呢。
基本数据类型在declare的时候就分配了内存的,而且在java里会初始化初值的,int类型默认是0
{
FileInputStream fr= new FileInputStream ("C:\\2266.gif");
FileOutputStream fw = new FileOutputStream("C:\\c2266.gif");; int data;
byte[] bb = new byte[1024]; // AA处
while ( fr.read(bb)!=-1)
{
fw.write(bb);
}
fw.flush();
fw.close();
fr.close();
}
所以应该是这样的:
public static void main(String[] args)
{
FileInputStream fis = new FileInputStream("f:\1.jpg");
FileOutputStream fos = new FileOutputStream("f:\cpy1.jpg");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
BufferedWriter bw = new BufferedWriter(new InputStreamWriterr(fos)); boolean isend = false;
String str =new String();
while(!isend)
{
str = br.readLine();
bw.write(str,0,str.length());
if(str==null)
isend=true;
}
br.close;
bw.close;
}
问题 报告 IO 报NULLPOINTERException
假如对图形图象进行IO的话又专门的imageIO的
你这样只是在缓冲中拷贝了本分文件,而不能重新组合成图像,所以显示出来是一块 黑区
察看一下javax.imageio.ImageIO
不能这么写要写成f:\\1.jpg