java 字节流 编码_java的IO学习,字节流与字符流的编码讲解

importorg.junit.Test;public classIOTest {/*** BufferedInputStream BufferedOutputStream

* 利用字节缓冲流实现文件的复制

*@throwsIOException

**/@Testpublic void bufferedInputStreamAndbufferedOutputStream() throwsIOException{//新建字节的输入输出

InputStream in = new FileInputStream("hellow.txt");

BufferedInputStream bStream= newBufferedInputStream(in);

OutputStream out= new FileOutputStream("hellow2.txt");

BufferedOutputStream bOutputStream= newBufferedOutputStream(out);//创建缓冲数组

byte[] bytes = new byte[100];//进行复制

int len = 0;while((len = bStream.read(bytes))!= -1)

{

bOutputStream.write(bytes,0, len);

}//关闭流

bStream.close();

bOutputStream.close();

}/*** bufferdeReader And bufferedWriter

* 利用缓冲流实现文件的复制

*@throwsIOException

* **/@Testpublic void bufferdeReaderAndbufferedWriter() throwsIOException {//新建字符的输入输出

Reader in = new FileReader("hellow.txt");

BufferedReader bReader= newBufferedReader(in);

Writer out= new FileWriter("hellow2.txt");

BufferedWriter bWriter= newBufferedWriter(out);//进行复制

String line = null;int i = 0;while ((line = bReader.readLine()) != null) {if (i != 0)

bWriter.write("\n");

bWriter.write(line,0, line.length());

i++;

}//关闭流

bReader.close();

bWriter.close();

}/***reader writer

* 利用字符输入输出流, 完成 hello.txt 文件的复制.

* 把该文件复制为 hello2.txt*/@Testpublic void readerAndwriter() throwsIOException {//新建字符的输入输出

Reader reader = new FileReader("hellow.txt");

Writer writer= new FileWriter("hellow2.txt");//定义数组,用于读写文件

char[] cbuf = new char[100];//读写文件

intlen;while((len = reader.read(cbuf)) != -1)

{

writer.write(cbuf,0, len);

}//关闭流

reader.close();

writer.close();

}/***InputStream OutputStream

* 利用字节输入输出流, 完成 hello.txt 文件的复制.

* 把该文件复制为 hello2.txt

*@throwsIOException*/@Testpublic void testCopyFile() throwsIOException{//1. 创建定位到 hello.txt 的文件的输入流

InputStream in = new FileInputStream("枚举类.avi");//2. 创建定位到 hello2.txt 的文件输出流

OutputStream out = new FileOutputStream("枚举类2.avi");//3. 创建一个 byte 数组, 用于读写文件

byte [] buffer = new byte[1024 * 10];int len = 0;//4. 读写文件://in.read(buffer); out.write(buffer, 0, len);

while((len = in.read(buffer)) != -1){

out.write(buffer);

}//5. 关闭流资源.

out.close();

in.close();

}/*** 测试字节输出流 OutputStream

*@throwsIOException*/@Testpublic void testOutputStream() throwsIOException{

OutputStream out= new FileOutputStream("abcd.txt");

String content= "www.atguigu.com\nHello Java!";

out.write(content.getBytes());

out.close();

}/*** 测试字符输入流. Reader

*@throwsIOException*/@Testpublic void testReader() throwsIOException{//利用字符输入流读取 hello.txt 文档的内容, 输出到控制台.

Reader reader = new FileReader("hello.txt");char [] buffer = new char[10];int len = 0;while((len = reader.read(buffer)) != -1){for(int i = 0; i < len; i++){

System.out.print(buffer[i]);

}

}

reader.close();

}/*** 测试字节输入流 InputStream

*@throwsIOException*/@Testpublic void testInputStream() throwsIOException{//1. 创建了一个字节输入流.

InputStream in = new FileInputStream("hello.txt");//2. 读取文件的内容//2.1 第一读取一个字节. 效率很低, 不建议这样读. -1 表示读取到文件的结尾处//int result = in.read();//

//while(result != -1){//System.out.print((char)result);//result = in.read();//}//2.2 一次读取一组: 一组字符.//返回一次实际读取的字节数, 若为 -1 表示读取到文件的结尾//byte [] buffer = new byte[10];//int len = 0;//

//while((len = in.read(buffer)) != -1){//for(int i = 0; i < len; i++){//System.out.print((char)buffer[i]);//}//}//2.3 把内容读取到字节数组的部分连续的元素中.

byte [] result = new byte[1024 * 10];

in.read(result,10, in.available());//3. 关闭流资源

in.close();

}/*** File: 代表物理的意义的文件或目录

*@throwsIOException*/@Testpublic void testFile() throwsIOException{//1. 创建 File 对象

File file = new File("hello.txt");//2. 测试 File 对象的方法.//2.1 文件名相关的方法

String fileName =file.getName();

System.out.println(fileName);//2.2 访问文件的绝对路径

String path =file.getAbsolutePath();

System.out.println(path);//2.3 为文件重命名//file.renameTo(new File("d:\\hello.txt"));//3. 文件检测相关的方法

System.out.println(file.exists());

File dir= new File("atguigu");

System.out.println(dir.isFile());//4. 获取文件的常规信息

System.out.println(file.length());//5. 文件操作相关.

File file2 = new File("abcd.txt");

file2.createNewFile();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值