JAVA中,使用字节流读写文件,为什么找不到文件的位置?请看补充:

JAVA中,使用字节流读写文件,为什么找不到文件的位置?请看补充:,第1张

命令行中路径中包含空格时,应该使用“”包含起来:

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)

也是一样的道理


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11967044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存