`
edr_
  • 浏览: 169541 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于IO相关理解

阅读更多
好几天没写博客了,玩了一两天,接着学习IO。 
师兄特写嘱咐:不能使用baidu等搜索引擎,不能看书查资料,只允许查看java api。
刚开始师兄给了我们7-8道题目,只是给我们讲个大概,至于具体是怎么实现的则完全靠自己利用JAVA-API去摸索。
手动建立删除一个文件,文件夹以及显示相关信息-文件加密解密-复制文件内容-键盘读入用户的输入然后显示-键盘读入用户的输入然后存储-实现由键盘输入多行字符然后存储。
java知识是无限的,很多很多的类,而且继承类相当多。只能说只有学会了如何去学习利用API会才让我们在接下的编程过程能够减少搜索编译出错解决方案所花费的时间,更多是利用时间去学习新的知识!以下只是这几天的具体题目做法,至于深入了解IO以及APi则需要在接下来的时间好好研究好好利用工具。
至于具体的体会则在以下自己的代码中详细列出:
手动建立删除一个文件,文件夹以及显示相关信息-文件加密解密(集合一起):
import java.text.SimpleDateFormat;
import java.io.*;
public class IoTest1{
	public static void main(String args[]){
	//4.创建-删除-文件以及显示文件最后修改时间
	String filepath="e:\\java\\io.txt";
	File f=new File(filepath);
	try{
		//f.createNewFile();--创建一个文件
		//f.delete();--删除
		SimpleDateFormat change = new SimpleDateFormat("yyyy-MM-ss hh:mm:ss");
		String time = change.format(f.lastModified());
		System.out.print(time);
		}catch(Exception e){
			e.printStackTrace();
			//System.out.println("你的路径有误");
			//写入一个日志文件中
		}
	//5.创建文件夹--注意f1,f2的区别
	/*File f1 = new File("e:\\java\\java讲授");
	File f2 = new File("e:\\java\\视频\\IO流");
	try{
		f1.mkdir();
		f2.mkdirs();
	}
	catch(Exception e){
	e.printStackTrace();
	}
	*/
	/*
	//加密解密文件内容--file首先应该获取长度
	String s = "e:\\java\\io.txt";
	File f1=new File(s);
	int i;
	try{
	    RandomAccessFile f = new RandomAccessFile(s,"rw");//注意构造方法格式、可能会抛出异常
	    byte[] b=new byte[(int)f1.length()]; //创建数组
		f.read(b);//传入参数		
		for(i=0;i<b.length;i++){
			b[i]=(byte)(b[i]-12);
		}
		f.setLength(0);//清空内容
		f.write(b);//重写写入改写内容-加密
		
	}catch(Exception e){
		e.printStackTrace();
	}
	*/
	
}
}

复制内容:
FileInputStream f1 = new FileInputStream(filepath1);//会抛出异常所以要包含在try里面
		FileOutputStream f2 = new FileOutputStream(filepath2);
		byte[] b = new byte[(int)f.length()];//返回long型,进行强制转换
		f0.createNewFile();//先新建一个文件以便复制
		f1.read(b);//读取
		f2.write(b);//复制内容

键盘输入然后显示:
InputStreamReader isr = new InputStreamReader(System.in);
	OutputStreamWriter osr = new OutputStreamWriter(System.out);
	try{
		int t ;
		while((t=isr.read())!='\r'){   //enter键位ASC码为13,或者'\r'
		osr.write(t);
		}

使用InputStreamReader、FileReader、FileWriter实现从键盘输入字符,然后通过FileWriter存入一个指定的文件,最后通过FileReader类将内容从文件中读出,并显示在屏幕上:
InputStreamReader isr = new InputStreamReader(System.in);
	try{	
		FileWriter f1 =new FileWriter(f);
		FileReader f2 =new FileReader(f);
		int t ;
		while((t=isr.read())!='\r'){   //enter键位ASC码为13,或者'\r'
		f1.write(t);
		}
		f1.flush();//需要刷新或者关闭之后读取才能显示出来
		char[] cbuf = new char[(int)f.length()];
		f2.read(cbuf,0,cbuf.length);
		for(int i= 0;i<cbuf.length;i++){
			System.out.print(cbuf[i]);
		}

使用BufferedReader、BufferedWriter实现由键盘输入多行字符,并以end字符串结束,然后将输入内容存入到文件中,分行写入:
在这个里面需要利用好抽象类的应用。
try{
		BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter out=new BufferedWriter(new FileWriter("e:\\java\\io.txt"));
		for(int i=0;!(t=in.readLine()).equals("end");i++){
				out.write(t);
				out.newLine();	
			}







分享到:
评论

相关推荐

    逻辑IO与物理IO 逻辑IO与物理IO 逻辑IO与物理IO

    在设备驱动程序开发中,理解逻辑IO和物理IO的区别至关重要。对于内存映射的IO,驱动开发者需要知道如何通过内存访问操作来与外设交互;而对于I/O映射方式,开发者则需要了解如何使用特定的IO指令。Linux内核提供了...

    Linux IO数据通道我理解

    ### Linux IO数据通道理解 #### 一、IO数据通道处理层次 在Linux系统中,输入/输出(IO)数据通道的处理是一个复杂的过程,涉及到多个层次的协作与交互。了解这些层次及其工作原理对于深入理解Linux系统的IO机制至...

    网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO

    这里我们将深入探讨同步IO、异步IO、阻塞IO和非阻塞IO的概念,理解它们的工作原理以及在实际应用中的差异。 1. 同步IO与异步IO: - **同步IO**:在同步模式下,应用程序执行I/O操作时会等待操作完成。这意味着程序...

    RAPIDIO嵌入式系统互连_rapidio中文协议_rapidio嵌入式_

    《RAPIDIO嵌入式系统互连》是深入理解 RapidIO 协议的重要参考资料,尤其对初学者来说,中文版的翻译提供了更为便捷的理解途径。RapidIO 是一种高性能、低延迟的串行互连技术,最初设计用于满足通信设备和嵌入式系统...

    Linux文件IO跟标准IO总结

    - **文件I_O操作.pdf**:这个文件可能会介绍Linux下文件IO的各种操作,如文件打开、关闭、读写以及相关的系统调用和错误处理。 通过阅读这些文档,初学者可以更全面地了解Linux下的IO机制,以便在实际编程中选择最...

    Linux IO数据通道我理解之分享

    3. **bio**:基本的IO单元,包含了bio_vec和其他相关信息。 4. **biotail**:bio_vec队列的尾部。 5. **Bv_page**:每个bio_vec对应的一个或多个内存页。 6. **bi_next**:指向下一个bio的指针,用于链接多个bio形成...

    RapidIO V3.0

    这些修订历史记录为开发者提供了关于RapidIO技术演进的宝贵信息,有助于理解和追踪技术的进步和变化。 RapidIO V3.0规范的发布和维护遵循着严格的知识产权和免责声明。RTA明确表示,该规范是按照其原始状态发布的,...

    关于数字IO的学习教程

    在"第八章 数字IO.doc"文档中,很可能会详细介绍数字IO的使用方法、相关电路设计、示例代码以及常见问题的解决策略。读者可以通过学习这个章节,掌握如何在实际工程中灵活运用数字IO,实现各种创新的功能。 总结来...

    Java IO与NIO:深入理解与实践指南

    Java IO和NIO提供了两种不同的I/O处理方式,各有优势和适用场景。IO适用于简单的I/O操作,而NIO则适合于需要高性能和高并发的应用。了解这两种I/O处理方式的区别和特点,可以帮助开发者根据具体的应用需求选择合适的...

    RapidIO-Specification-4.0.pdf

    《RapidIO互连规范4.0》是RapidIO组织...总之,《RapidIO互连规范4.0》是理解、实施和优化RapidIO技术的关键资源,涵盖了从基本概念到高级特性的全面指导,对于从事相关领域的专业人员来说,是一份不可或缺的学习资料。

    rapidIO嵌入式系统互连_rapidio_rapidIO嵌入式系统互连_rapidio嵌入式_嵌入式_

    《RapidIO嵌入式系统互连》是关于嵌入式系统中的一种高速互连技术的探讨,主要聚焦于RapidIO技术及其在系统设计中的应用。RapidIO是一种开放标准的、基于串行通信协议的互连技术,最初由RapidIO Trade Association...

    深刻理解java io

    input stream: 1) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用 2) StringBufferInputStream:把一个String对象作为InputStream 3) FileInputStream:把一个文件作为InputStream,实现对文件的...

    socket.io,socket.io-client下载

    Socket.IO和Socket.IO-Client是两个非常重要的库,主要用于实现实时双向通信,尤其是在Web开发领域。它们使得JavaScript客户端...在使用这些库时,理解其工作原理、正确配置和优化连接,将有助于构建高性能的实时应用。

    DDRIO模块简要使用说明

    理解DDRIO的工作原理,熟练掌握配置技巧,以及充分考虑实际应用中的挑战,都是成功使用DDRIO的关键。在实际工程中,配合详细的文档(如“DDR IO简要使用说明.doc”)进行学习和参考,将有助于你更好地掌握DDRIO模块...

    drawio.js源码

    4. **布局算法**:draw.io提供了多种布局算法,如层次布局、力导向布局等,这些算法可以自动调整图形的位置,使图表更加美观且易于理解。 5. **实时协作**:draw.io支持多人实时协作,源码中包含了同步机制,确保了...

    已待解决user 的IO问题

    在处理IO问题时,开发者需要深入理解操作系统如何管理IO操作,以及编程语言提供的相关API。以下是关于IO问题的一些关键知识点: 1. **操作系统中的IO模型**: - 同步与异步:同步IO操作会阻塞执行,直到操作完成;...

    autosar-经典平台-IO

    这部分可能包含了关于AUTOSAR如何定义、配置和管理IO接口的详细信息。AUTOSAR中,IO服务通常分为两类:基本软件(BSW)组件提供的低级IO服务和应用软件组件(ASC)使用的高级IO服务。BSW组件如Memory Manager和...

    mcgs批量自动生成IO监视表.zip,能够自动生成IO监视界面,此代码仅供学习参考

    首先,我们要理解IO表(Input/Output Table),它是工业控制系统中用于描述设备输入和输出信号的一种表格。在西门子PLC系统中,IO表通常包含每个输入和输出点的地址、类型以及注释等信息。这些信息对于监控和调试PLC...

    统一编址与独立编址 IO端口与IO内存

    统一编址与独立编址 IO 端口与 IO 内存 统一编址与独立编址是两种不同的编址方式,它们在计算机系统中扮演着重要的角色。统一编址是一种将内存和 IO 设备统一编址...理解这些概念对于计算机系统的设计和实现非常重要。

    STM32(普通IO 模拟串口).rar_IO模拟fsmc_IO模拟串口_STM32 IO模拟_io 串口_nonegem

    在这些情况下,通过“IO模拟串口”技术,我们可以利用STM32的普通GPIO引脚来模拟串口通信,从而克服硬件接口不足的问题。 串口通信是嵌入式系统中最常见的通信方式之一,它用于设备间的双向异步数据传输。标准的...

Global site tag (gtag.js) - Google Analytics