e:\comple java\ab.txt
应该改为
“e:\comple java\ab.txt”
命令行使用空格作为参数的分割符的……
import java.io.BufferedReader
import java.io.File
import java.io.FileInputStream
import java.io.IOException
import java.io.InputStreamReader
import java.io.PrintWriter
public class Test10 {
/**
* 复制当前的源程序到项目的根目录
* @throws IOException
*/
public static void main(String[] args) throws IOException {
/*
* 1:读取原文件
* 2:项目标文件中写
* 3:使用缓冲流按行读写
*/
FileInputStream fis=new FileInputStream("src"+File.separator+"day01"+File.separator+"Test1.java")
InputStreamReader isr=new InputStreamReader(fis)
//按行为单位读取字符串
BufferedReader br=new BufferedReader(isr)
//
PrintWriter pw=new PrintWriter("Test1.java")
String line=null
while((line=br.readLine())!=null){
pw.println(line)
}
pw.close()
br.close()
}
}
字节流与字符流主要的区别是他们的的处理方式字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的
在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用 *** 作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[]String.getBytes(String charsetName)
也是一样的道理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)