Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用带有一个公共字符串的Java程序拆分文件?_Java - Fatal编程技术网

如何使用带有一个公共字符串的Java程序拆分文件?

如何使用带有一个公共字符串的Java程序拆分文件?,java,Java,我有一个包含不同国家/地区天气数据的.csv文件,其中我必须将数据拆分为不同的csv,其中country=India one.csv应使用名称row.csv创建,如果印度以外的国家/地区应创建为output.csv,请提供帮助,因为我是初学者,即使尝试了几次也无法解决问题 import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;

我有一个包含不同国家/地区天气数据的.csv文件,其中我必须将数据拆分为不同的csv,其中country=India one.csv应使用名称row.csv创建,如果印度以外的国家/地区应创建为output.csv,请提供帮助,因为我是初学者,即使尝试了几次也无法解决问题

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class weather {

    public static void main(String[] args) {
        
        try 
        {
            String Country =null;
            String India = null;
            String s;
            FileReader fr = new FileReader("C:\\Users\\pratap\\Downloads\\weather1.csv");
            BufferedReader br = new BufferedReader(fr);
            
            if (Country != India)
            {
                FileWriter  fw = new FileWriter("C:\\Users\\pratap\\Downloads\\output.csv" , true);
                while ((s = br.readLine()) != null)
                {
                    fw.write(s);
                    fw.flush();
                }
                br.close();
                fw.close();
                System.out.println("file copied");
            }
            else
                
            {
                FileWriter  fw = new FileWriter("C:\\Users\\pratap\\Downloads\\row.csv" , true);
                while((s = br.readLine()) != null)
                {
                    fw.write(s);
                    fw.flush();
                }
                br.close();
                fw.close();
                System.out.println("file copied");
            }
            
        }               
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }
}

好吧,你似乎还不太接近。我不打算给你写这篇文章,因为这听起来像是一个家庭作业,但我会推动你

听起来好像你有一个大文件,你试图只提取一个国家的数据,你可以这样做:

grep "India" < input.csv > output.csv
您将不得不提取出国家部分,但是解析CSV文件可能是一件麻烦事,因此这是整个问题中最困难的部分


但是,如果您遵循概述的结构,则大多数操作都很简单。

如果您不知道。说“不”您在代码中编辑了什么不确定您希望它做什么:
if(Country!=India)
看起来您基本上跳过了从CSV文件读取数据并检查其内容的步骤。在谷歌上快速搜索类似“java读取csv文件”的内容可以找到各种各样的例子。在较高的层次上,您需要将阅读和写作的步骤分开。首先将所有记录读入一个对象数组。然后你就完成了原始文件。然后在数组上循环,并根据该对象中的值附加一个或另一个文件。不要使用“==”或“!=”来比较对象。而是使用
equals(…)
方法。
bool isForIndia(const std::string & inputLine)