17 文件和网络I/O
1 文件和网络I/O
1.1 文件处理
groovy向java所提供的File
类,新增了几个方便的方法。分别是:eachLine和.text。
package file class FileToConsole { static main(args) { println("====将文件中的内容写入到控制台"); File file = new File("D:/tutorial/15groovy/code/GroovyTutorial/src/file/myfile.txt"); file.eachLine {line -> println line; }; println ("在每一行的前边加上一个行号,然后打印到控制台"); def lineNumber = 0; file = new File("D:/tutorial/15groovy/code/GroovyTutorial/src/file/myfile.txt"); file.eachLine {line -> lineNumber++; println ("$lineNumber:$line"); }; println ("读文件内容并写入到String"); String s = new File("D:/tutorial/15groovy/code/GroovyTutorial/src/file/myfile.txt").text; println s; } } |
输出
====将文件中的内容写入到控制台 hello world hello zuoys! 在每一行的前边加上一个行号,然后打印到控制台 1:hello world 2:hello zuoys! 读文件内容并写入到String hello world hello zuoys! |
File
对象提供了几个方法,如 eachFile
, eachDir
和earchFileRecursively
,闭包使用。
1.2 向文件写入内容
写入文件,并且向文件中追加内容,以及从磁盘中删除文件。
package file class WriteAndAppendToFile { static def filePath = "D:/tutorial/15groovy/code/GroovyTutorial/src/file/output.txt"; static main(args) { File file = new File(filePath); file.write("Hello\n"); file.append("Testing\n"); file << "More appending...\n"; File result = new File(filePath); println (result.text); //从磁盘中删除该文件 file.delete(); } } |
输出
Hello Testing More appending... |
1.3 处理http的get请求
抓取http远端页面,类似读取一个文本文件。
package file class ReadHttpPage { static main(args) { String url = "http://www.cnblogs.com/yaoyuan2/"; //法1 def data = new URL(url).text; //法2:使用groovy JDK方法 //data = url.toURL().text; println (data); } } |
输出:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>遥远2 - 博客园</title> <link type="text/css" rel="stylesheet" href="/bundles/blog-common.css?v=umTYGJ1Xbo61obX_Gqsil3krUSBXOilTLax6nesdN401"/> <link id="MainCss" type="text/css" rel="stylesheet" href="/skins/SimpleClear/bundle-SimpleClear.css?v=EVOKy_9d-0OzsDt7Iaw0OHSiRqKJoQVRFQeK_xCGZ6c1"/> <link title="RSS" type="application/rss+xml" rel="alternate" href="http://www.cnblogs.com/yaoyuan2/rss"/> <link title="RSD" type="application/rsd+xml" rel="EditURI" href="http://www.cnblogs.com/yaoyuan2/rsd.xml"/> <link type="application/wlwmanifest+xml" rel="wlwmanifest" href="http://www.cnblogs.com/yaoyuan2/wlwmanifest.xml"/> <script src="//common.cnblogs.com/script/jquery.js" type="text/javascript"></script> <script type="text/javascript">var currentBlogApp = 'yaoyuan2', cb_enable_mathjax=false;</script> <script src="/bundles/blog-common.js?v=5U27mPu5I0KkEyh-j235bo21EbCO9CoRnrVjj5DiOjI1" type="text/javascript"></script> </head> <body> <a name="top"></a> <div id="main"> <div id="header"> <h1><a id="Header1_HeaderTitle" href="http://www.cnblogs.com/yaoyuan2/">遥远2</a></h1> <p id="tagline"></p></div> </div> <div id="rightmenu"> <div id="my_links"> <h3>导航</h3> <ul> <li><a id="MyLinks1_HomeLink" href="http://www.cnblogs.com/">博客园</a></li> <li><a id="MyLinks1_MyHomeLink" href="http://www.cnblogs.com/yaoyuan2/">首页</a></li> <!--<li><a id="MyLinks1_NewPostLink" rel="nofollow" href="http://i.cnblogs.com/EditPosts.aspx?opt=1">新随笔</a></li>--> <li><a id="MyLinks1_ContactLink" rel="nofollow" href="http://msg.cnblogs.com/send/%E9%81%A5%E8%BF%9C2">联系</a></li> <li><a id="MyLinks1_Syndication" href="http://www.cnblogs.com/yaoyuan2/rss">订阅</a></li><!--<a id="MyLinks1_XMLLink" href="http://www.cnblogs.com/yaoyuan2/rss"><img src="http://www.cnblogs.com/images/xml.gif" alt="订阅" /></a>--> <li><a id="MyLinks1_Admin" rel="nofollow" href="http://i.cnblogs.com/">管理</a></li> </ul> </div> <div id="blog-calendar" style="display:none"></div><script type="text/javascript">loadBlogDefaultCalendar();</script> <h3>公告</h3> <div class="newsItem"> <div id="blog-news"></div><script type="text/javascript">loadBlogNews();</script> </div> <div id="blog_stats"> <h3>统计</h3> <ul> <li>随笔 - 0 <li>文章 - 0 <li>评论 - 0 <!--<li>引用 - 0--> </li> </ul> </div> <div id="blog-sidecolumn"></div><script type="text/javascript">loadBlogSideColumn();</script> <div id="footer"> Powered by: <br /> <a id="Footer1_Hyperlink3" NAME="Hyperlink1" href="http://www.cnblogs.com/"><font face="Verdana">博客园</font></a> <br /> Copyright © 遥远2 </div> </div> </body> </html> |
17 文件和网络I/O的更多相关文章
- 利用sfc文件构建网络渗透
收集哈希 SCF(Shell命令文件)文件可用于执行一组有限的操作,例如显示Windows桌面或打开Windows资源管理器,这并不是什么新鲜事.然而,一个SCF文件可以用来访问一个特定的UNC路 ...
- 在数据库中生成txt文件到网络驱动器中(计算机直接创建的网络驱动器在sql server中没有被找到)
环境:sql server 2008 一.创建网络驱动器映射 语法:exec master..xp_cmdshell 'net use Z: \\ip地址\网络路径 密码 /user:用户名' 例如: ...
- 关于IO的操作(文件、网络)
IO操作的流程总结和分析: (1)对象,易于编写代码 ---> (2)byte[],底层本质 ----> (3)IO(文件.网络),最终IO处理掉
- Linux常用命令入门文件、网络、系统及其他操作命令
Linux常用命令入门文件.网络.系统及其他操作命令.压缩 归档 文件系统 系统管理 用户管理 网络管理 finger 相关命令 netstat ping rsh telnet wget 进程管理等 ...
- Ucinet6 + Netdraw 根据excel文件绘制网络拓扑图
条件: 具备Ucinet6 和 Netdraw 两款软件的Windows excel文件格式(.xlsx .xls .csv):必须是数字,如果现有的文件不是数字,可以采用某种编码的方式将其映射成 ...
- C#判断本地文件,网络文件是否存在是否存在
File.Exists 方法 (String) 确定指定的文件是否存在. 命名空间: System.IO程序集: mscorlib(位于 mscorlib.dll) 参数 path Type: ...
- 17.Linux搭建网络仓库
1.搭建一个网络仓库 服务端:10.0.0.201 1.准备软件包(1.光盘 2.缓存 3.联网下载 4.同步) 1.挂载光盘 mount /dev/cdrom 2.通过ftp共享软件包存放的目录 y ...
- 17.3.13---socket网络套接字介绍--函数和数据类型
1----Socket类型 套接字格式:socket(family,type[,protocal])使用给定的地址族,套接字类型,协议编号(默认为0)来创建套接字 socket类型 描述 socket ...
- java 将本地文件或网络文件与base64互相转换
一:将网络文件转为Base64 将文件转为base64 public static String fileToBase64(String url){ int byteread = 0; String ...
随机推荐
- HDU4372 Count the Buildings —— 组合数 + 第一类斯特林数
题目链接:https://vjudge.net/problem/HDU-4372 Count the Buildings Time Limit: 2000/1000 MS (Java/Others) ...
- Codeforces Round #363 (Div. 2) D. Fix a Tree —— 并查集
题目链接:http://codeforces.com/contest/699/problem/D D. Fix a Tree time limit per test 2 seconds memory ...
- Appium——解决每次启动时都安装setting和unlock app方法
找到appium安装目录 C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android 修改代码,注释掉弹出setting ...
- Objective-C学习之解析XML
通过soap请求webservice时,返回的数据是XML类型,有时候也需要解析本地的xml数据等,苹果自带类NSXMLParser解析xml还是很方便的,简单轻便 本文以解析本地XML为例,网络获取 ...
- 生成chm格式帮助文档的步骤
开场前,道具先得被齐全了. 道具:struts2的开源代码(以生成struts2的帮助文档为例).chm格式生成工具jd2chm.exe(网上有) 好了,准备演出 1.在eclipse中新建一个jav ...
- 【C/C++】malloc()
<math.h>文件中对malloc()函数原型: _CRTIMP void * __cdecl malloc(size_t); MSDN中对malloc()的解释: malloc re ...
- bzoj 2179 FFT快速傅立叶 —— FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2179 默写板子,注释的是忘记的地方. 代码如下: #include<iostream& ...
- wampServer 设置
设置端口 打开 C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf 文件 找到“Listen 80”和“ServerName localhost:80”,紧接 ...
- bzoj2687
整体二分+决策单调性 这个方法已经忘了... 决策单调性是指dp[i]由dp[1]->dp[i-1]更新,那么当dp[j]比dp[k]优且j>k时,对于i->n j都比k优 通过这个 ...
- U盘安装 Linux 显示 “Faild to copy file from CD-ROM”
解决方案 使用 UltraISO 刻录 U盘做镜像时,出现这种情况.查阅别人的 blog,尝试手动挂载发现还是不能成功.然后使用 win32diskimager 重新刻录,再次安装时未出现该情况. 参 ...