您好,登錄后才能下訂單哦!
本篇內容主要講解“如何用Scala將指定格式的數據寫入到文件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何用Scala將指定格式的數據寫入到文件”吧!
新建FileOps對象:
package com.ruozedata.day3
import java.io.{File,PrintWriter}
import java.text.SimpleDateFormat
import java.util.{Calendar, Date}
//import scala.io.Source
object FileOps {
def main(args: Array[String]): Unit = {
//文件讀取
// val file = Source.fromFile("D:\\software\\data\\scalaIO.txt")
// file.foreach(print)
// file.close()getTracffic()
/**
* 文件格式:
* domain tracffic time
* www.ruozedata.com64447 [2018-07-17 07:39:57]
* www.ruozedata.com13781[2018-07-11 06:52:41]
*/
//文件寫入
//加載文件D:\software\data\ScalaWriter.txt 如果沒有會創建
val writer = new PrintWriter(new File("D:\\software\\data\\ScalaWriter.txt"))
writer.flush(); //清空文件內容
//輸入標題字段:domain tracffic time
//writer.println("domain\ttracffic\ttime")
//定義網址的數組
val arr = Array("www.ruozedata.com","www.zhibo8.com","www.dongqiudi.com")
//定義26個字母的數組 用于隨機寫入tracffic字段的值(非數字)
val arr2 = Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")
//定義一個數字的集合
val arr3 = (10000 to 99999).toArray
//用于接收tracffic值的變量
var ele = ""
for(i <- 1 until 100000){
//如果 i為偶數就設置ele的值為數字,否則設置為字母
ele = if (i%10==0) arr2((new util.Random).nextInt(26)) else arr3((new util.Random).nextInt(arr3.length)).toString()
//將內容寫入到文件里面
writer.println(arr((new util.Random).nextInt(3))+"\t"+ele+"\t"+(getNowDate()))
}
//關閉寫入流
writer.close()
//獲取動態時間的方法,格式:yyyy-MM-dd HH:mm:ss
def getNowDate(): String = {
// 動態獲取日
var days = (new util.Random).nextInt(getNowMonthEnd()).toString() ;
// 動態獲取小時
var hours = (new util.Random).nextInt(23).toString() ;
// 動態獲取分鐘
var minutes = (new util.Random).nextInt(59).toString() ;
// 動態獲取秒
var seconds = (new util.Random).nextInt(59).toString() ;
//判斷1-9的日需要在前面添加0
if (days == "0"){ // 如果獲取的日為0,則需要手動處理成其他日,我這里處理成01
days = "01"
}else{
if ((days.length()) == 1) {
days = "0"+days
}
}
//判斷1-9的日需要在前面添加0
hours = if (hours.length() == 1) "0"+hours else hours
//判斷1-9的日需要在前面添加0
minutes = if (minutes.length() == 1) "0"+minutes else minutes
//判斷1-9的日需要在前面添加0
seconds = if (seconds.length() == 1) "0"+seconds else seconds
//獲取當前日期
val now: Date = new Date()
val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyy-MM")
//格式化當前日期 格式:yyyy-MM
val date = dateFormat.format(now)
//返回動態日期格式:[yyyy-MM-dd HH:mm:ss]
return "["+date+"-"+days+" "+hours+":"+minutes+":"+seconds+"]"
}
//獲取當前月的最后一天的方法
def getNowMonthEnd():Int={
var period:String=""
var cal:Calendar =Calendar.getInstance();
var df:SimpleDateFormat = new SimpleDateFormat("dd");
cal.set(Calendar.DATE, 1)
cal.roll(Calendar.DATE,-1)
period=df.format(cal.getTime())//本月最后一天
Integer.parseInt(period)
}
}
}
到此,相信大家對“如何用Scala將指定格式的數據寫入到文件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。