数据格式:
直接上代码:
object CSVSecLine {
def main(args: Array[String]): Unit = {
val fileNames: ListBuffer[String] = getFileName("H:\\csv")
//遍历文件夹中所有文件名,读取其第二行数据,写入新的文件
for (fileName <- fileNames) {
val data: String = readCSVSecLine(fileName)
println(data)
writeNewCSV(data,"H:\\xxx\\all.csv")
}
}
/**
* 读取csv文件的第二行数据
* @param path
* @return
*/
def readCSVSecLine(path:String) : String = {
val file = new File(path)
val br = new BufferedReader(new FileReader(file))
var line: String = br.readLine
var firstsecline = ""
var firstline = ""
for(i <-1 to 2){
firstline = firstsecline;
firstsecline = line.trim();
line = br.readLine();
}
br.close();
firstsecline
}
/**
* 将读取的数据写入新的文件
* @param data
* @param path
*/
def writeNewCSV(data:String,path:String): Unit ={
val out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path,true),"utf-8"))
out.write(data)
out.newLine()
out.flush()
out.close()
}
/**
* 获取文件夹中的所有文件名
* @param path
* @return
*/
def getFileName(path:String): ListBuffer[String] ={
val file = new File(path)
val fileNames:ListBuffer[String] = ListBuffer()
if(file.isDirectory){
val files: Array[File] = file.listFiles()
for (file <- files) {
if(file.isDirectory){
System.out.println("目录:" + file.getPath)
getFileName(file.getPath)
}else{
//println(file.getPath)
fileNames += file.getPath
}
}
}
fileNames
}
}
将文件中每行的最后一个引号和倒数第二个逗号剔除并写入新文件:
object DelLastYinHao {
def main(args: Array[String]): Unit = {
val file = new File("H:\\xxx\\all.csv")
val br = new BufferedReader(new FileReader(file))
val out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("H:\\xxx\\all1.csv",true),"utf-8"))
while (br.readLine()!=null){
val data = new StringBuilder(br.readLine())
val data2: StringBuilder = data.replace(data.length-1,data.length,"")
val data3: StringBuilder = data2.replace(data2.length-1,data2.length,"")
out.write(data3.toString())
out.newLine()
out.flush()
}
br.close()
out.close()
}
}