前言:我有一个出租车轨迹的txt文本,其中包括多条轨迹。我想把这个文本按照单条轨迹输出出来,每条轨迹放在一个txt文本中。

思路:重要问题就集中在,如何动态的指定输出文件的名字。我想到了StringBuilder,StringBuilder可以拼接字符串,我可以动态改变,代表输出路径的字符(我这里通过循环一个整数,然后再拼接到字符串上),这样就可以通过变化StringBuilder,来改变FIle对象对应的路径。

上代码(其中InputPoint是之前写好的一个读入文件的一个类)

import geotools.InputPoint;
import geotools.PointRule; import java.io.*;
import java.util.ArrayList; /**
* 写一个类,用来把文件中的轨迹,每条轨迹都放在一个文件中
*/
public class OneToMore {
public static OutputStreamWriter out;
public static ArrayList<PointRule> track=new ArrayList<>();
public static void oneToMore() throws IOException {
/**
* 每条轨迹得分别new一个file对象
*/
/*先把数据读进来*/
InputPoint inputPoint=new InputPoint();
ArrayList<PointRule> p=inputPoint.Read();
/**
* 先循环并按轨迹拆分
* 声明一个用来存储单条轨迹的集合
* 用布尔判断,声明时候开始读入什么时候结束
*/ boolean start=false;
int k=0;
for (int i=0;i<p.size()-1;i++){
if (start){
track.add(p.get(i));
}
if(p.get(i).getIsON()==1){
track.add(p.get(i));
start=true;
}
if (start&&p.get(i).getIsON()==0){
track.add(p.get(i));
start=false;
String filename="E://桌面//1118原数据//";
StringBuilder s=new StringBuilder(filename);
s.append(k);
s.append(".txt");
out = new OutputStreamWriter(
new FileOutputStream(new File(s.toString()),true));
BufferedWriter wr = new BufferedWriter(out);
for (int j=0;j<track.size()-1;j++) {
try {
wr.write(String.valueOf(track.get(j).getCarnum()));
wr.write("\t");
wr.write(String.valueOf(track.get(j).getIsON()));
wr.write("\t");
wr.write(String.valueOf(track.get(j).getDate()));
wr.write("\t");
wr.write(String.valueOf(track.get(j).getLat()));
wr.write("\t");
wr.write(String.valueOf(track.get(j).getLon()));
wr.write("\t");
wr.write(String.valueOf(track.get(j).getSpeed()));
wr.write("\t");
wr.write(String.valueOf(track.get(j).getDirect()));
wr.write("\n");
wr.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
wr.close();
track.clear(); k++;
}
}
}
/**
* 程序入口测试
*/
public static void main(String[] args) throws IOException {
OneToMore.oneToMore();
}
}

记录一下我的学习

Java把一个文件,输出成多个文件的更多相关文章

  1. 【转】java将excel文件转换成txt格式文件

    在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...

  2. Linux中将一个GBK编码的文件转换成UTF-8编码文件

    Linux中将一个GBK编码的文件转换成UTF-8编码文件 使用iconv 命令iconv -f GBK -t UTF-8 file1 -o file2 输出另一个文件,然后再覆盖源文件内容

  3. java将文件打包成ZIP压缩文件的工具类实例

    package com.lanp; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  4. 使用visual studio把xsd文件转成xml格式文件

    使用visual studio把xsd文件转成xml格式文件 最近一段时间都在做Amazon的mws api的对接工作,mws api的描述文件都是使用的xsd文件来进行的,之前确实也没有接触过,也花 ...

  5. h5模型文件转换成pb模型文件

      本文主要记录Keras训练得到的.h5模型文件转换成TensorFlow的.pb文件 #*-coding:utf-8-* """ 将keras的.h5的模型文件,转换 ...

  6. Python3.6安装protobuf模块+将proto文件转换成pb2.py文件

    Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ...

  7. cmake指定程序输出目录和库文件输出目录和拷贝文件

    概述 本文样式环境: win10+cmake 3.18 本文将介绍使用CMAKE配置项目输出目录和 LIbrary项目的输出目录 本文将介绍 cmake的file函数的基础用法之拷贝文件 重点, 这些 ...

  8. 把TXT GB2312文件转换成TXT UTF8文件

    /// <summary>        /// 把TXT GB2312文件转换成TXT UTF8文件        /// </summary>        /// < ...

  9. log4j配置文件及java调用 每个级别输出到不同的文件

    #配置根Logger log4j.rootLogger = DEBUG , RollingFile,CONSOLE #文件大小达到一定尺寸的时候创建一个新的文件 log4j.appender.Roll ...

随机推荐

  1. JVM垃圾回收(下)

    接着上一篇,介绍完了 JVM 中识别需要回收的垃圾对象之后,这一篇我们来说说 JVM 是如何进行垃圾回收. 首先要在这里介绍一下80/20 法则: 约仅有20%的变因操纵着80%的局面.也就是说:所有 ...

  2. [Luogu2422]良好的感觉

    题目描述 kkk做了一个人体感觉分析器.每一天,人都有一个感受值Ai,Ai越大,表示人感觉越舒适.在一段时间[i, j]内,人的舒适程度定义为[i, j]中最不舒服的那一天的感受值 * [i, j]中 ...

  3. Rsync服务常见问题

    转---Rsync 故障排查整理 Rsync服务常见问题汇总讲解: 1. 客户端的错误现象:No route to host rsync服务端开启的iptables**防火墙** [root@nfs0 ...

  4. HTTP协议详解(二)—— HTTP响应

    HTTP响应(Response) 响应与请求一样分成三个部分:响应行.响应头.响应体. 1.响应行: 格式 - HTTP/1.1 200 OK 2.响应头: 部分头属性解释 - Location:这个 ...

  5. redis之管道

    Redis 的消息交互当我们使用客户端对 Redis 进行一次操作时,如下图所示,客户端将请求传送给服务器,服务器处理完毕后,再将响应回复给客户端.这要花费一个网络数据包来回的时间. 如果连续执行多条 ...

  6. springboot使用spring配置文件

    1.如何在springboot中使用spring的配置文件,使用@Configuration和@ImportResource注解 package com.spring.task; import org ...

  7. Prometheus(二):Prometheus 监控Windows机器

    一.安装wmi-exporter 首先在需要监控的Windows机器上安装wmi_exporter.wmi_exporter下载地址:https://github.com/martinlindhe/w ...

  8. malloc面试题目(转) - [C++]

    试题4: void GetMemory( char *p ){ p = (char *) malloc( 100 );} void Test( void ) { char *str = NULL; G ...

  9. 卷积神经网络详细讲解 及 Tensorflow实现

    [附上个人git完整代码地址:https://github.com/Liuyubao/Tensorflow-CNN] [如有疑问,更进一步交流请留言或联系微信:523331232] Reference ...

  10. PLSQL Developer 超简单使用!!!

    PLSQL Developer 简介 PLSQL Developer是Oracle数据库开发工具,很牛也很好用,PLSQL Developer功能很强大,可以做为集成调试器,有SQL窗口,命令窗口,对 ...