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 对象提供了几个方法,如 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>

时间: 2024-12-17 11:47:13

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

文件与网络、JSON解析

文件与网络.JSON解析   分类: OC语言基础 同步.异步.JSON解析.XML解析 NSData 字节数据存储,二进制存储,苹果中认为字符型和字节型都可以存,即计算机中所有类型的数据,主要用于网络传输数据的缓冲存储 GET请求,只支持255个字符 ,安全性较差,将请求信息附加在超链接上,较方便  POST请求,上传没有大小限制,请求信息在请求体内,在超链接上不能看到,安全性强,缺点:不方便 同步连接:UI “冻结” 异步连接:UI “不冻结” 异步连接,用代理:下载容易造成UI冻结,耗时,

sharepoint 2007 “文件为网络下载文件,请存储到硬盘之后再修改文件。”

当直接打开sharepoint 2007 上的excel文档后,使用使用ctrl+s保存的时候,就弹出对话框"文件为网络下载文件,请存储到硬盘之后再修改文件." 检查发现是sharepoint上安装了第三方加密工具trustview导致的. 解决办法:1.点击保存按钮保存 2.使用"迁出"后,打开文档 3.在excel中关闭trustview插件: excel options--add-ins--mamage下面选择com add-ins--然后点Go--取消选择:

大文件/数据网络传输方法总结(转载)

网络编程中不免会遇到需要传输大数据.大文件的情况,而由于socket本身缓冲区的限制,大概一次只能发送4K左右的数据,所以在传输大数据时客户端就需要进行分包,在目的地重新组包.而实际上已有一些消息/通讯中间件对此进行了封装,提供了直接发送大数据/文件的接口:除此之外,利用共享目录,ftp,ssh等系统命令来实现大文件/数据也不失为一种好的方法. 1.基础的基于socket进行传输 基础的基于socket进行传输关键在于控制,需要自己行分包和组包. ////////////////////////

17.文件操作

17.1 文件流类 17.2 文件的打开关闭 #include<fstream> fstream oFile("D:\\dang.dat",ios::out|ios::binary); 或 fstream oFile; oFile.open("D:\\......",ios::out|ios::binary); 检查是否成功打开 if(!oFile) cout<<"oFile open error"<<endl

零基础学python-2.17 文件、open()、file()

今天我们来说说文件,以及跟文件有关的内建函数open和file 首先我们在python的根目录下建一个名为"123"的txt文本文件 文件里面我们输入一些文本 我们把新建文件与源代码都放到python根目录下面 下面我们来看看代码: handler=open("123.txt")#由于把文件跟源代码建立在python的根目录, #所以这里的路径只需打名字即可 for eachLine in handler: print(eachLine,end='') handle

17.文件上传、下载

/*文件上传*/(common-fileupload)(common-fileupload是依赖于common-io这个包的) 使用Apache文件上传组件处理文件上传 /*步骤*/: 1.创建一个DiskFileFactory factory = new DiskFileFactory(); 2.创建一个文件上传解析器 1 DiskFileItemFactory factory = new DiskFileItemFactory(); 2 //方法用于设置当上传文件尺寸大于setSizeThr

2016.2.17文件夹选择框及文件选择框

string fpth = ""; OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Title = "请选择走向文件"; openFileDialog.Filter = "文本文件|*.txt"; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == Dialog

linux命令(17)---文件权限管理命令之ACL控制

在linux系统中文件权限所属可管理的用户类型大致分为三类:u-->属主.g-->属组.o-->其他用 户,那么有没这么一种情况,有一个用户或组既不属于文件的属主.属组呢,当然出了属主.属组就是 其他用户了. 现在有这么一个目录名为"testdr",权限位770,从设置目录文件不难看出属主和属组对目录都有最 高的权限,其他用户对目录并且半点权限,现在要求一个用户既不属于属主或属组可对目录有rx权限, 一个不是目录属组的用户组对文件也有rx权限.针对目录而言rx权限意味

Linux编程 17 文件权限(权限设置chmod,改变文件属主属组关系chown,chgrp)

一. 概述 如果创建了一个目录或文件,有时会需要改变它的安全性设置,在linux系统上有一些工具可以完成这任务,包括使用chmod命令改变已有默认权限,分别能对属主,属组,其它用户的权限的控制分别以读取.写入.执行3种权限来区分设置,还有使用chown,chgrp来改变默认属主属组关系. 1 . 改变权限 chmod chmod命令用来改变文件和目录安全性设置,该命令的三种用法格式如下: model模式参数可以使用八进制或符号模式进行安全性设置,八进制模式设置非常直观,直接用期望赋予文件的标准3