這篇文章主要介紹了Scala中如何實現(xiàn)文件讀取、寫入、控制臺操作,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供友誼企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都做網(wǎng)站、H5場景定制、小程序制作等業(yè)務(wù)。10年已為友誼眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
Scala文件讀取
E盤根目錄下scalaIO.txt文件內(nèi)容如下:

文件讀取示例代碼:
//文件讀取
val file=Source.fromFile("E:\\scalaIO.txt")
for(line <- file.getLines)
{
println(line)
}
file.close
說明1:file=Source.fromFile(“E:\scalaIO.txt”),其中Source中的fromFile()方法源自 import scala.io.Source源碼包,源碼如下圖:

file.getLines(),返回的是一個迭代器-Iterator;源碼如下:(scala.io)

Scala 網(wǎng)絡(luò)資源讀取
//網(wǎng)絡(luò)資源讀取
val webFile=Source.fromURL("http://spark.apache.org")
webFile.foreach(print)
webFile.close()fromURL()方法源碼如下:
/** same as fromURL(new URL(s)) */ def fromURL(s: String)(implicit codec: Codec): BufferedSource = fromURL(new URL(s))(codec)
讀取的網(wǎng)絡(luò)資源資源內(nèi)容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Apache Spark™ - Lightning-Fast Cluster Computing
</title>
<meta name="description" content="Apache Spark is a fast and general engine for big data processing, with built-in modules for streaming, SQL, machine learning and graph processing.">
<!-- Bootstrap core CSS -->
<link href="/css/cerulean.min.css" rel="external nofollow" rel="stylesheet">
<link href="/css/custom.css" rel="external nofollow" rel="stylesheet">
<script type="text/javascript">
<!-- Google Analytics initialization -->
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32518208-2']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
<!-- Adds slight delay to links to allow async reporting -->
function trackOutboundLink(link, category, action) {
try {
_gaq.push(['_trackEvent', category , action]);
} catch(err){}
setTimeout(function() {
document.location.href = link.href;
}, 100);
}
</script>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<body>
<script src="https://code.jquery.com/jquery.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script src="/js/lang-tabs.js"></script>
<script src="/js/downloads.js"></script>
<div class="container" >
<div class="masthead">
<p class="lead">
<a href="/" rel="external nofollow" >
<img src="/images/spark-logo.png"
></a><span class="tagline">
Lightning-fast cluster computing
</span>
</p>
</div>
<nav class="navbar navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="/downloads.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Download</a></li>
<li class="dropdown">
<a href="#" rel="external nofollow" rel="external nofollow" class="dropdown-toggle" data-toggle="dropdown">
Libraries <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/sql/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >SQL and DataFrames</a></li>
<li><a href="/streaming/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Spark Streaming</a></li>
<li><a href="/mllib/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >MLlib (machine learning)</a></li>
<li><a href="/graphx/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >GraphX (graph)</a></li>
<li class="divider"></li>
<li><a href="http://spark-packages.org" rel="external nofollow" rel="external nofollow" >Third-Party Packages</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" rel="external nofollow" rel="external nofollow" class="dropdown-toggle" data-toggle="dropdown">
Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/docs/latest/" rel="external nofollow" >Latest Release (Spark 1.5.1)</a></li>
<li><a href="/documentation.html" rel="external nofollow" >Other Resources</a></li>
</ul>
</li>
<li><a href="/examples.html" rel="external nofollow" >Examples</a></li>
<li class="dropdown">
<a href="/community.html" rel="external nofollow" rel="external nofollow" class="dropdown-toggle" data-toggle="dropdown">
Community <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/community.html" rel="external nofollow" rel="external nofollow" >Mailing Lists</a></li>
<li><a href="/community.html#events" rel="external nofollow" >Events and Meetups</a></li>
<li><a href="/community.html#history" rel="external nofollow" >Project History</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/SPARK/Powered+By+Spark" rel="external nofollow" rel="external nofollow" >Powered By</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/SPARK/Committers" rel="external nofollow" rel="external nofollow" >Project Committers</a></li>
<li><a href="https://issues.apache.org/jira/browse/SPARK" rel="external nofollow" rel="external nofollow" >Issue Tracker</a></li>
</ul>
</li>
<li><a href="/faq.html" rel="external nofollow" >FAQ</a></li>
</ul>
</div>
<!-- /.navbar-collapse -->
</nav>
<div class="row">
<div class="col-md-3 col-md-push-9">
<div class="news" >
<h6>Latest News</h6>
<ul class="list-unstyled">
<li><a href="/news/submit-talks-to-spark-summit-east-2016.html" rel="external nofollow" >Submission is open for Spark Summit East 2016</a>
<span class="small">(Oct 14, 2015)</span></li>
<li><a href="/news/spark-1-5-1-released.html" rel="external nofollow" >Spark 1.5.1 released</a>
<span class="small">(Oct 02, 2015)</span></li>
<li><a href="/news/spark-1-5-0-released.html" rel="external nofollow" >Spark 1.5.0 released</a>
<span class="small">(Sep 09, 2015)</span></li>
<li><a href="/news/spark-summit-europe-agenda-posted.html" rel="external nofollow" >Spark Summit Europe agenda posted</a>
<span class="small">(Sep 07, 2015)</span></li>
</ul>
<p class="small" ><a href="/news/index.html" rel="external nofollow" >Archive</a></p>
</div>
<div class="hidden-xs hidden-sm">
<a href="/downloads.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn btn-success btn-lg btn-block" >
Download Spark
</a>
<p >
Built-in Libraries:
</p>
<ul class="list-none">
<li><a href="/sql/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >SQL and DataFrames</a></li>
<li><a href="/streaming/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Spark Streaming</a></li>
<li><a href="/mllib/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >MLlib (machine learning)</a></li>
<li><a href="/graphx/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >GraphX (graph)</a></li>
</ul>
<a href="http://spark-packages.org" rel="external nofollow" rel="external nofollow" >Third-Party Packages</a>
</div>
</div>
<div class="col-md-9 col-md-pull-3">
<div class="jumbotron">
<b>Apache Spark™</b> is a fast and general engine for large-scale data processing.
</div>
<div class="row row-padded">
<div class="col-md-7 col-sm-7">
<h3>Speed</h3>
<p class="lead">
Run programs up to 100x faster than
Hadoop MapReduce in memory, or 10x faster on disk.
</p>
<p>
Spark has an advanced DAG execution engine that supports cyclic data flow and
in-memory computing.
</p>
</div>
<div class="col-md-5 col-sm-5 col-padded-top col-center">
<div >
<img src="/images/logistic-regression.png" />
<div class="caption" >Logistic regression in Hadoop and Spark</div>
</div>
</div>
</div>
<div class="row row-padded">
<div class="col-md-7 col-sm-7">
<h3>Ease of Use</h3>
<p class="lead">
Write applications quickly in Java, Scala, Python, R.
</p>
<p>
Spark offers over 80 high-level operators that make it easy to build parallel apps.
And you can use it <em>interactively</em>
from the Scala, Python and R shells.
</p>
</div>
<div class="col-md-5 col-sm-5 col-padded-top col-center">
<div >
<div class="code">
text_file = spark.textFile(<span class="string">"hdfs://..."</span>)<br />
<br />
text_file.<span class="sparkop">flatMap</span>(<span class="closure">lambda line: line.split()</span>)<br />
.<span class="sparkop">map</span>(<span class="closure">lambda word: (word, 1)</span>)<br />
.<span class="sparkop">reduceByKey</span>(<span class="closure">lambda a, b: a+b</span>)
</div>
<div class="caption">Word count in Spark's Python API</div>
</div>
<!--
<div class="code" >
text_file = spark.textFile(<span class="string">"hdfs://..."</span>)<br/>
<br/>
text_file.<span class="sparkop">filter</span>(<span class="closure">lambda line: "ERROR" in line</span>)<br/>
.<span class="sparkop">count</span>()
</div>
-->
<!--<div class="caption">Word count in Spark</div>-->
</div>
</div>
<div class="row row-padded">
<div class="col-md-7 col-sm-7">
<h3>Generality</h3>
<p class="lead">
Combine SQL, streaming, and complex analytics.
</p>
<p>
Spark powers a stack of libraries including
<a href="/sql/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >SQL and DataFrames</a>, <a href="/mllib/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >MLlib</a> for machine learning,
<a href="/graphx/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >GraphX</a>, and <a href="/streaming/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Spark Streaming</a>.
You can combine these libraries seamlessly in the same application.
</p>
</div>
<div class="col-md-5 col-sm-5 col-padded-top col-center">
<img src="/images/spark-stack.png" usemap="#stack-map" />
<map name="stack-map">
<area shape="rect" coords="0,0,74,95" href="/sql/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" alt="Spark SQL" title="Spark SQL" />
<area shape="rect" coords="74,0,150,95" href="/streaming/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" alt="Spark Streaming" title="Spark Streaming" />
<area shape="rect" coords="150,0,224,95" href="/mllib/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" alt="MLlib (machine learning)" title="MLlib" />
<area shape="rect" coords="225,0,300,95" href="/graphx/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" alt="GraphX" title="GraphX" />
</map>
</div>
</div>
<div class="row row-padded" >
<div class="col-md-7 col-sm-7">
<h3>Runs Everywhere</h3>
<p class="lead">
Spark runs on Hadoop, Mesos, standalone, or in the cloud. It can access diverse data sources including HDFS, Cassandra, HBase, and S3.
</p>
<p>
You can run Spark using its <a href="/docs/latest/spark-standalone.html" rel="external nofollow" >standalone cluster mode</a>, on <a href="/docs/latest/ec2-scripts.html" rel="external nofollow" >EC2</a>, on Hadoop YARN, or on <a href="http://mesos.apache.org" rel="external nofollow" >Apache Mesos</a>.
Access data in <a href="http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html" rel="external nofollow" >HDFS</a>, <a href="http://cassandra.apache.org" rel="external nofollow" >Cassandra</a>, <a href="http://hbase.apache.org" rel="external nofollow" >HBase</a>,
<a href="http://hive.apache.org" rel="external nofollow" >Hive</a>, <a href="http://tachyon-project.org" rel="external nofollow" >Tachyon</a>, and any Hadoop data source.
</p>
</div>
<div class="col-md-5 col-sm-5 col-padded-top col-center">
<img src="/images/spark-runs-everywhere.png" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4 col-padded">
<h4>Community</h4>
<p>
Spark is used at a wide range of organizations to process large datasets.
You can find example use cases at the <a href="http://spark-summit.org/summit-2013/" rel="external nofollow" >Spark Summit</a>
conference, or on the
<a href="https://cwiki.apache.org/confluence/display/SPARK/Powered+By+Spark" rel="external nofollow" rel="external nofollow" >Powered By</a>
page.
</p>
<p>
There are many ways to reach the community:
</p>
<ul class="list-narrow">
<li>Use the <a href="/community.html#mailing-lists" rel="external nofollow" >mailing lists</a> to ask questions.</li>
<li>In-person events include the <a href="http://www.meetup.com/spark-users/" rel="external nofollow" >Bay Area Spark meetup</a> and
<a href="http://spark-summit.org/" rel="external nofollow" >Spark Summit</a>.</li>
<li>We use <a href="https://issues.apache.org/jira/browse/SPARK" rel="external nofollow" rel="external nofollow" >JIRA</a> for issue tracking.</li>
</ul>
</div>
<div class="col-md-4 col-padded">
<h4>Contributors</h4>
<p>
Apache Spark is built by a wide set of developers from over 200 companies.
Since 2009, more than 800 developers have contributed to Spark!
</p>
<p>
The project's
<a href="https://cwiki.apache.org/confluence/display/SPARK/Committers" rel="external nofollow" rel="external nofollow" >committers</a>
come from 16 organizations.
</p>
<p>
If you'd like to participate in Spark, or contribute to the libraries on top of it, learn
<a href="https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark" rel="external nofollow" >how to
contribute</a>.
</p>
</div>
<div class="col-md-4 col-padded">
<h4>Getting Started</h4>
<p>Learning Spark is easy whether you come from a Java or Python background:</p>
<ul class="list-narrow">
<li><a href="/downloads.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Download</a> the latest release — you can run Spark locally on your laptop.</li>
<li>Read the <a href="/docs/latest/quick-start.html" rel="external nofollow" >quick start guide</a>.</li>
<li>
Spark Summit 2014 contained free <a href="http://spark-summit.org/2014/training" rel="external nofollow" >training videos and exercises</a>.
</li>
<li>Learn how to <a href="/docs/latest/#launching-on-a-cluster" rel="external nofollow" >deploy</a> Spark on a cluster.</li>
</ul>
</div>
</div>
<div class="row">
<div class="col-sm-12 col-center">
<a href="/downloads.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn btn-success btn-lg" >Download Spark</a>
</div>
</div>
<footer class="small">
<hr>
Apache Spark, Spark, Apache, and the Spark logo are trademarks of
<a href="http://www.apache.org" rel="external nofollow" >The Apache Software Foundation</a>.
</footer>
</div>
</body>
</html>
Process finished with exit code 0 //網(wǎng)絡(luò)資源讀取
val webFile=Source.fromURL("http://www.baidu.com/")
webFile.foreach(print)
webFile.close()讀取中文資源站點,出現(xiàn)編碼混亂問題如下:(解決辦法自行解決,本文不是重點)
Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Scala中如何實現(xiàn)文件讀取、寫入、控制臺操作”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
文章題目:Scala中如何實現(xiàn)文件讀取、寫入、控制臺操作
轉(zhuǎn)載源于:http://www.chinadenli.net/article46/gpcdhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站導航、App設(shè)計、用戶體驗、全網(wǎng)營銷推廣、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)