今天的作业 java IO练习,一个山寨记事本,没什么技术含量

Java小程序之客户端的UI实现以及客户端与服务器的UI交互(山寨QQ进行中......) Java小程序之客户端的UI实现以及客户端与服务器的UI交互(山寨QQ进行中......) 一、前言 通过前面的学习,我们已经能够自己创建客户端,不需要依赖系统自带的telnet客户端,但是,我们只能利用控制台和后台服务器进行交互了,今天,我们要实现客户端的UI化,以及UI化后的客户端与服务器进行交互; 二、客户端UI的实现思路 1、创建窗体,写一个简单的登录界面以及一个简 阅读详情
/*
* 2011 08 29 java IO操作小练习
* Notepad 山寨记事本
*
×很多人都写过的东西,没记错的话已经是第二次写了吧,没什么技巧,也没什么算法,纯属熟悉程序的练手,一直想写一个完整的,还是先把作业交了再说吧
×一直想把程序尽量规范起来,希望能进步快点
× blog:blog.youkuaiyun.com/hack2me
* blog: youngershen.com/blog 需要翻墙
* email:younger.x.shen@gmail.com
*/




import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class NotePad extends JFrame{

		private  JMenu menu = null;
		private  JMenuBar bar = null;
		private  JMenuItem open = null;
		private  JMenuItem save = null;
		private  JMenuItem saveAs = null;
		private  JTextArea editArea = null;

		private BufferedReader reader = null;
		private BufferedWriter writer = null;
		private ArrayList<String> dumpString = new ArrayList<String>();
		private String fileName = null;
		private String buffer = null;
		private JFileChooser chooser = new JFileChooser();
		private File currentFile = null;
		private ArrayList<String> currentText = new ArrayList<String>();

		//成员初始化
		public NotePad(){
		
			super("NotePad By Younger.shen 20110829");
			menu = new JMenu("菜单");
			bar = new JMenuBar();
			open = new JMenuItem("打开");
			save = new JMenuItem("保存");
			saveAs = new JMenuItem("另存为");
			editArea = new JTextArea();
			setDefaultCloseOperation(EXIT_ON_CLOSE);
			
			initUI();
			getInit();
		}
	
		//事件初始化
		private void getInit(){
			
				saveAs.addActionListener(new ActionListener(){
	
							public void actionPerformed(ActionEvent e){
					
							System.out.println("click the save button");
							chooser.setDialogTitle("保存文件");
							chooser.setDialogType(JFileChooser.SAVE_DIALOG);
							chooser.setCurrentDirectory(new File("./"));
							int flag = 0;
							
							try{
							
								 flag = chooser.showSaveDialog(null);
							
							}catch (HeadlessException ex){

								System.out.println("保存文件错误");
							}
						
							if(JFileChooser.APPROVE_OPTION == flag){
						
								File temp = chooser.getSelectedFile();
								fileName = temp.getName();
								dumpToFile();
						
							}
						}
					});

			save.addActionListener(new ActionListener(){
			
					public void actionPerformed(ActionEvent e){
					
					//add later	
					}
				
			});
			open.addActionListener(new ActionListener(){
			
			
					public void actionPerformed(ActionEvent e){
					
						chooser.setDialogTitle("打开文件");
						chooser.setDialogType(JFileChooser.OPEN_DIALOG);
						int flag = 0;

						chooser.setCurrentDirectory(new File("./"));
						try{
							
							 flag = chooser.showOpenDialog(null);
						}catch (HeadlessException ex){

							System.out.println("保存文件错误");
						}
						if(JFileChooser.APPROVE_OPTION == flag){
						
							currentFile = chooser.getSelectedFile();
							fileName = currentFile.getName();
							ArrayList<String> t = openFile(fileName);

							for(int i=0;i<t.size();i++){
						
									editArea.append(t.get(i));
									editArea.append("\n");
							}
						}
					}
			});
		}
		
		//文件打开操作
		private ArrayList<String> openFile(String name ){
		
			
			try{
			
				reader = new BufferedReader(new FileReader(name));

				String temp = reader.readLine();

				while(temp != null){
		

					currentText.add(temp);

					temp = reader.readLine();
		
				}
				

		
		}catch(IOException e){
			
			
				System.out.println(e.toString());


			}finally{
			
					if(reader!=null){

						try{
						
								reader.close();

						}catch(IOException e){
						
							System.out.println("IO Error");
						}
					}
			
			}
				
				
		return currentText;
		
		
		}
		//UI初始化
		private void initUI(){
		

			bar.add(menu);
			menu.add(open);
			menu.add(save);
			menu.add(saveAs);
			setJMenuBar(bar);
			setLayout(null);
			add(editArea);
			editArea.setBounds(0,0,400,300);
			setVisible(true);
			setResizable(false);
			setSize(400,300);
			add(chooser);

		

			editArea.setEnabled(true);
			
			JScrollPane jScrollPane = null;	
			JPanel jContentPane = new JPanel();
			jScrollPane = new JScrollPane();
			jContentPane.setLayout(null);
            jContentPane.add(jScrollPane, null);
            jScrollPane.setBounds(new Rectangle(0, 2, 400, 300));
            jScrollPane.setViewportView(editArea);
			setContentPane(jContentPane);
				
}

		//聚集字符串的工具方法
		private void gatherString(){
	
				
				buffer = editArea.getText();
		
		}
	
		
	//保存成文件
	public void dumpToFile(){
	
		
		gatherString();

	try{
			writer = new BufferedWriter(new FileWriter(fileName,true));
	
	
	
			writer.write(buffer,0,buffer.length());
			writer.write("\r");
			writer.write("\n");
	
			writer.flush();
		
	}catch(IOException e){
	
	
			System.out.println("dump error");
	
	}finally{
	
		try{

			writer.close();
		
		}catch(IOException e){
		
			System.out.println("IO Error");	
		}
	}
}

	//主方法这个不用看了
	public static void main(String[] args){
	
	
		new NotePad();
	}

}

JavaSE雪梨作业任务及参考答案 JavaSE雪梨作业任务及参考答案。JAVA SE课程,李玮玮老师 立即下载

相关推荐

java大作业IO 和异常

1.写一段程序利用Scanner类扫描用户输入,假设用户输入: lvjia 37 D:\photo.jpg 将前两部分lvjia和37直接写入文件D:\test.bin;第三个部分是一个文件路径,检查文件(D:\photo.jpg)是否存在,如果存在将文件内容写入D:\test.bin,如果不存在抛出用户自定义异常FNEException对象(此异常类需要你自己定义)。 2.写一段程序读入题1生成的文件D:\test.bin,将前面两个输入(lvjia和37)输出到控制台,将余下的文件内容复制到E:\photo.jpg(注意不允许读取D:\photo.jpg)。 要求: 1文件写入(7)+1异常类定义(8)+2控制台输出(9)+文件复制(10)

Java-IO流课后作业练习题1

Java-IO流课后作业练习题1

bxy0806的博客 372

固件测试工具选型需要考察的功能点汇总

通过专业的固件测试工具可以帮助我们提高测试效率、提升测试的覆盖度、确保测试的准确性,保障产品的安全和质量。本文我们讲固件测试工具的功能点进行梳理和汇总,方便大家在采购固件测试工具时进行选型比对。

daopuyun的博客 2112

java中io练习_Java IO 练习

1、编写程序,将一个目录及其子目录下的所有 txt 类型的文本文件中的内容合并到若干个新的文本文件中,当第一个新产生的文件存储的内容达到 1M 时,剩下的内容存储到第二个新的文件中,依次往下,新产生的文本文件名依次为 1.txt、2.txt、……。小生愚钝。如果哪位大虾有更好的方法请给我留言!public class Demo {private static int number = 1;publ...

weixin_33842969的博客 253

目前最新NIST随机数测试软件下载、安装、及使用教程

最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载...

Miracle.Zhao的博客 3万+

【精细解读】xapp585(多通道LVDS接口ADC)

xapp585的参考设计有Verilog和VHDL两种源码。

FPGA艺术家的博客 532

java自编日记本程序(IO、GUI和监听器)

------- android培训、java培训、期待与您交流! ---------- 自己喜爱写日记,自学了GUI、I/O和监听器后,于是蹦出个注意,用java遍一个日记本,让程序自己规定日记的内容,这样就免去了缩进格式之类的麻烦。 说什么都是浮云,先上效果图: 代码和注释如下: 1、UI.java import java.awt.BorderLayout; import

u013470176的专栏 3186

具身智能:原理、算法与系统 第3章 具身智能的感知-认知-行为框架

具身智能的PCB框架源于对生物智能系统的观察:动物通过感官接收环境信息(感知),基于内部模型进行预测和决策(认知),并通过身体执行动作改变环境(行为),而这一改变又通过感知反馈形成闭环。这一框架在两篇核心文献中得到了深入阐述:提出了系统的数学形式化和工程实现,则从认知科学角度强调了归纳偏置和双过程理论的重要性。

VectorShift的博客 155

Java通过I/O简单记事本(暂时读写功能,等待完善)

package txt; /**  * 记事本  */ import java.awt.FileDialog; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java.io.*; public

Punrain的博客 535

PCL 欧式聚类(C++详细过程版)

为充分了解算法实现的每一个细节和有待改进的地方,使用C++代码对算法实现过程进行复现。

点云侠的博客 2448

一个超酷的开源uHand2.0机械手掌项目

uHand2.0是深圳乐幻索尔公司开源的一款机械手掌,它长下面这个样子:1、uHand2.0外观图之前在公众号就分享过视频:学习嵌入式可以带娃,不信你们看2、uHand2.0硬件原理图看...

Bruce.yang的嵌入式之旅 4460

JAVA实现IO流之日记本(记事本)

要求:编写一个模拟日记本的程序,通过在控制台输入指令,实现在本地新建文件,打开日记本和修改日记本等功能。 指令1代表“新建日记本”,可以从控制台获取用户输入的日记内容 指令2代表“打开日记本”,读取指定路径的TXT文件的内容并输出到控制台 指令3代表“修改日记本”,修改日记本中原有的内容 指令4代表保存 指令5代表退出 import java.io.*; import java.util.Scanner; public class IO_日记本 { /** * 模拟日记本程序

遇安的博客 7075

使用AutoDL云服务器训练YOLO计算机视觉网络模型(AutoDL+Xftp+VS Code),附详细操作步骤

AutoDL AI算力云是一个提供人工智能算力服务的云平台。丰富的GPU资源:提供多种GPU型号,包括NVIDIA的A100A800L40V100RTX 4090RTX 3090等,能满足我们在不同场景下的需求,无论是进行大规模的AI训练还是复杂的科学计算等任务,都可以找到合适的GPU资源。灵活的付费方式:支持按量付费包日包周包月等多种付费模式。对于短期的实验或不确定时长的项目,可以选择按量付费;如果有长期稳定的算力需求,预付费或包周包月则可能更划算,可以根据自己的需求和预算进行选择。集成主流框架:集成了。

Limiiiing的博客 958

山寨腾讯“爱消除”游戏7日教程

【前言】 最近,“爱消除”游戏异常的火爆,它正是山寨之王的作品。从今天开始,我们将连续7天,每天一个小时,用OpenGL ES技术,按照解决一般问题的思路,进入有趣的山寨之旅。   学习本教程最好的方法,就是运行附件的代码,对于不理解的地方再看看课程是如何解释的。       第一天 【课程内容】 今天我们将基于OpenGL ES搭建一个简单的游戏框架,并绘制出第一个图案。 【

忆龙2009 7811

ASPICE标准快速掌握「1.1. 简介」

ASPICE是汽车软件过程改进能力模型(Automotive SPICE,Automotive - Software Process Improvement and Capability dEtermination)的缩写,是一种针对汽车软件开发过程的国际标准。该标准旨在帮助汽车制造商和供应商改进其软件开发过程,以确保其软件产品的质量和安全性。需要做什么为什么要做技术上的依赖性是什么。

雪云飞星的博客 2293

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

IO流所涉及到的Decorator设计模式

前段时间的时候总结了一篇关于IO流所用到的Decorator设计模式的文章,今天再看一遍,感觉收获些小许,嘿嘿: 首先看下面两条语句: [code="java"]InputStream input = new BufferedInputStream(new FileInputStream(“1.txt”)) InputStream input= new DataIputS...

niuxiaoni2的博客 144

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java使用Runtime.exec()给Windows命令提示符做了个外壳,真的很山寨!

昨天发布的文本编辑器Quickpad-1.2我还有很多地方不满意的,比如控制台没有实现键盘输入功能,今天本想解决这个问题,没想到做成了一个山寨版的Windows命令提示符。 [align=center]MyConsole的效果如下[/align] [align=center][img]http://dl2.iteye.com/upload/attachment/0105/711...

jisonami的专栏 199

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[零基础学习java]系统学习的节奏、方法、找工作核心目标

作为一名Java学习者,一开始就很好地使用搜索引擎是很重要的。Java生态系统非常健全,您现在遇到的大多数问题以前都遇到过。在百度上搜索许多问题会给你想要的答案。努力独立解决问题,逐渐养成习惯。随着时间的推移,你解决问题的能力会迅速提高。我已经向大家解释了如何零基础自学,希望对大家有所帮助。如果你想从零基础自学到就业,基本上是九死一生,而最终能成功的人很少,都是靠自己的努力和创造力。

共同学习、强我国家 223

自学java去哪找工作比较好_半路出家的Java程序员,学到什么程度才能出去找工作...

程序员,近年来十分火爆的职业,凭着巨大的市场缺口和高额的薪水吸引着大量毕业生加入程序员的队伍。这其中就包括各类专业的学生,像我这种自动化专业的也在其内。这些不是计算机科班出身的可以看作是半路出家了。谈到就业问题,都是大问题。谁都想有个好起点,一步领先可能步步领先。小小接触了很多学员,有些人一毕业就能拿到Offer,有的人迟迟徘徊。有的人勤奋刻苦,但是面临找工作却缕缕败下阵来。小小不否认那些迅速找到...

weixin_39954908的博客 780

Java学到什么程度我们就可以工作呢

近几年Java程序员的火爆大家都看在眼里,凭着巨大的市场缺口和高额薪资吸引这大量毕业生加入程序员的行列,很多同学在问“Java学到什么程度我们就可以工作呢”说到这个问题,谁都想要有个好起点,俗话说一步领先步步领先。 今天我们就先来看看那些参加了Java培训的同学,学到了哪些技术知识,毕业后高薪就业的,Java就业班的课程框架来说: 给初学者还要部分学生提供知识体系整理好(笔记,PPT,学习视频,《java核心知识整理》共283页的PDF)免费领取群639714511,可以交流学习,里面文件有资料哦

HATAO999999的博客 270

java学习笔记(一)

韩顺平java从入门到精通系列 从今天开始学java了,期限一个月看能学成啥样。!!! 加油 java se: j2se 桌面开发 基础~ java ee: j2ee  web开发 java me: j2me  手机开发 java面向对象编程,图形界面,数据库编程,文件io流,网络编程,多线程 坦克大战,山寨qq,满汉堂 1,高效而愉快的学习 2,先建立一个整体框架,然后细节

从零单排 473

用java写简单的web服务器,在宿舍提供视频播放

准备写一个web服务器专门供宿舍看电影用。 之前已经实现基本的web服务器,今天又把视频播放器弄好了,接下来就是整合了。 视频播放器,用的CuPlayer,改改demo就行,之前不成功可能是没在localhost下测试,视频是需要服务器提供文件传输服务的。 1.网页flash播放器原理:我猜的哈 目前流行播放视频用swf,让后用swf去加载视频。swf本身可以播放视频(类似qq影音的本地视

Monster_li57的专栏 1万+

只会CRUD必看!PyTorch On Java实战:Java原生写大模型

你是不是也有这样的焦虑?每天写着insert、update、select,突然有一天发现隔壁工位的小张开始聊什么"大模型微调"、“神经网络训练”,而你连Python都不会写,更别提什么PyTorch了。看着招聘JD上"熟悉AI开发优先"的字样,手里的Java代码突然就不香了。别慌!谁说Java程序员就不能玩深度学习了?今天我就来给你揭秘一个神器——,让你用纯Java代码就能调用PyTorch,训练神经网络,甚至跑大模型。

HHX_01的博客 230

模仿 Struts2 框架自己写一个 MVC 框架来深入理解 MVC

MVC 即是Model View Controller 的缩写,Model 即模型,View 即视图,Controller 即控制器。MVC 是一种非常流行的软件设计模式,把代码分根据功能为视图、模型、控制器三个部分。M : Model 模型,主要用于业务处理逻辑及数据存取,表示数据的状态。V: View 视图,主要用于展现数据(列表数据,详细数据等),收集数据(注册,调查报告等)。体现在和用户的交互界面。C:Controller,主要用于接收客户端请求及根据请求调用响应的Model。

zp8126的专栏 1296

自学编程有出路吗?

有的,出路绝对是有的,不过的看你会付出什么样的努力了,学习从来没有捷径,只有学成之后才会一切是那么简单。想要学会编程,一定要有坚定的信念。 自学计算机编程的效果都是是因人而异的,也看你选择学那个语言了,例如一个零基础的小白自学java,每天学习8个小时来算,而且在有学习资料的基础上,每天学习,从零到找到工作,起码要半年起步,而且还要有项目经验,否则是不会有公司要你的。而一个有一些基础的人,在经过有人系统的教学后,是可以很快学会掌握java的,大概5~6个月左右。不过java相对于C,C++java而言,j

lghtdw1314的博客 1542

简单的web服务器实现视频播放

准备写一个web服务器专门供宿舍看电影用。之前已经实现基本的web服务器,今天又把视频播放器弄好了,接下来就是整合了。视频播放器,用的CuPlayer,改改demo就行,之前不成功可能是没在localhost下测试,视频是需要服务器提供文件传输服务的。1.网页flash播放器原理:我猜的哈目前流行播放视频用swf,让后用swf去加载视频。swf本身可以播放视频(类似qq影音的本地视频播放工具),放...

qq_34468186的博客 3万+
上一篇: 测试你的程序是懦夫的行为
下一篇: 20110829 日作业,复制文件,简单IO操作,我自己扩展过的,比题干要求的功能多点
程序员迈克
博客等级 码龄16年 36粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值