我是个初学者,我想设计一个程序,下面是一些思路。我要复制一个文件A,前提是我并不知道这个文件A是二进制还是ASCII码的文本文件,而且要求如果文件A是二进制则所复制得到的文件B也是二进制文件,若A是ASCII码的文本文件,则复制得到的B还是能打开的文本文件~我遇到的问题是读二进制文件要用二进制的流,读文本的要用字符流,怎么区分呢?说的有些罗索,为了能说情问题啦~谢谢各位
调试欢乐多
复制文件的时候只要做字节数组处理就可以了....byte[] buf;字节是最底层的
|-二进制编码
byte-|
|-字符编码
这样看得懂吧
不管你是字符还是二进制码
他们都是基于字节的
字节是所有数据的基础只要字节不变,你用字符编码来读取字节是不会改变的LZ应该去学一点底层的东西,学点基础的C吧
其他不管你的文件是文本文件还是图片文件,在磁盘上都是以字节来保存的
只是打开文件的时候,对字节的解释方法不一样而已
*
* @param filename 以有的文件(c:\a.doc)
* @param copyto 要copy到的文件名称(d:\A.doc)
* @throws IOException
*/
public static void copyFile(String filename,String copyto)throws IOException{
InputStream is=new FileInputStream(filename);
OutputStream streamOut = new FileOutputStream(copyto);//定义输出流
int byteRead = 0;
byte[] buffer = new byte[8192];
while ((byteRead = is.read(buffer, 0, 8192)) != -1) {
streamOut.write(buffer, 0, byteRead);
}
streamOut.close();
is.close();
}
就ok了