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 对象提供了几个方法,如 eachFileeachDir 和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 &copy; 遥远2

</div>

</div>

</body>

</html>

17 文件和网络I/O的更多相关文章

  1. 利用sfc文件构建网络渗透

      收集哈希 SCF(Shell命令文件)文件可用于执行一组有限的操作,例如显示Windows桌面或打开Windows资源管理器,这并不是什么新鲜事.然而,一个SCF文件可以用来访问一个特定的UNC路 ...

  2. 在数据库中生成txt文件到网络驱动器中(计算机直接创建的网络驱动器在sql server中没有被找到)

    环境:sql server 2008 一.创建网络驱动器映射 语法:exec master..xp_cmdshell 'net use Z: \\ip地址\网络路径 密码 /user:用户名' 例如: ...

  3. 关于IO的操作(文件、网络)

    IO操作的流程总结和分析: (1)对象,易于编写代码    --->   (2)byte[],底层本质   ---->  (3)IO(文件.网络),最终IO处理掉

  4. Linux常用命令入门文件、网络、系统及其他操作命令

    Linux常用命令入门文件.网络.系统及其他操作命令.压缩 归档 文件系统 系统管理 用户管理  网络管理 finger 相关命令 netstat ping rsh telnet wget 进程管理等 ...

  5. Ucinet6 + Netdraw 根据excel文件绘制网络拓扑图

    条件: 具备Ucinet6 和 Netdraw 两款软件的Windows excel文件格式(.xlsx  .xls  .csv):必须是数字,如果现有的文件不是数字,可以采用某种编码的方式将其映射成 ...

  6. C#判断本地文件,网络文件是否存在是否存在

    File.Exists 方法 (String) 确定指定的文件是否存在. 命名空间:   System.IO程序集:  mscorlib(位于 mscorlib.dll) 参数 path Type:  ...

  7. 17.Linux搭建网络仓库

    1.搭建一个网络仓库 服务端:10.0.0.201 1.准备软件包(1.光盘 2.缓存 3.联网下载 4.同步) 1.挂载光盘 mount /dev/cdrom 2.通过ftp共享软件包存放的目录 y ...

  8. 17.3.13---socket网络套接字介绍--函数和数据类型

    1----Socket类型 套接字格式:socket(family,type[,protocal])使用给定的地址族,套接字类型,协议编号(默认为0)来创建套接字 socket类型 描述 socket ...

  9. java 将本地文件或网络文件与base64互相转换

    一:将网络文件转为Base64 将文件转为base64 public static String fileToBase64(String url){ int byteread = 0; String ...

随机推荐

  1. ubuntu下安装android模拟器genymotion【转】

    本文转载自:http://www.jianshu.com/p/e6062ebb8fc9 去genymotion下载对应的安装包genymotion-2.4.0_x64.bin sudo ./genym ...

  2. Appium基础——需要知道的

      Appium使用平台厂商提供的自动化框架: 1.ios 苹果的UIAutomation 2.android google的UIAutomator Appium底层使用厂商提供的自动化框架,就不需要 ...

  3. 关于redis的思考

    集群版本的redis主从复制 也可以实现集群 但是不是很好 集群版redis主从复制版本集群 Spring Boot整合Redi事务 Spring Boot+Redis+Ehcache实现二级缓存 S ...

  4. Rsync+Inotify同步

    rsync服务安装与<rsync+sersync同步>环境一样! 安装inotify-tools 在源服务器10.10.2.191上操作: 1.查看服务器内核是否支持inotify ll ...

  5. Python: PS 滤镜--旋转模糊

    本文用 Python 实现 PS 滤镜中的旋转模糊,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/392 ...

  6. 动态链接库的ELF头分析

    ELF(Executable and Linking Format)用于存储Linux程序. ELF文件分三种类型: 1.目标文件(通常是.o); 2.可执行文件(我们的运行文件)   3.动态库(. ...

  7. myeclipse_JUnit导包问题

    第一种方式: MyEclipse创建JUnit单元测试时,在需要测试的代码段前键入“@Test”时,按ctrl和1一般会自动提示JUnit需要导包,但有时会无法提示这个建议,如图所示.该经验教你如何解 ...

  8. ceph部署与问题

    一.基本情况:物理设备:4台惠普dl360,4个千兆网卡 4个1T盘操作系统统一为:CentOS 7.2.1511ceph版本:10.2.3ceph-deploy版本:1.5.36网络情况:192.1 ...

  9. bzoj3168

    二分图+矩阵求逆 既然我们考虑b能替换哪些a,那么我们自然要得出b被哪些a表示,这里我们设一个矩阵C,那么C*A = B 为什么呢?直接A*C = B是不可行的,因为都是行向量,不能直接乘,那么我们转 ...

  10. sqlserver:rank() over()函数

    先前在oracle数据库中接触过over()函数的一系列使用,但是在实际的sql开发中并没有太多的使用,这次在sqlserver的sql拼写中重新遇到这个函数,故结合网上的例子和项目中实际中使用,将其 ...