java读文件,文件中包含不同用户,根据用户将数据读到不同文件!?

java读文件,文件中包含不同用户,根据用户的不同将数据读到不同文件!求一个简单的java demo!第一个字段代表用户id:
图片说明

这玩意,看你如何保存的数据了,根据保存的规则,读取就是了,如果是按对象序列化的文件,那样肯能会比较简单

方式不对,肯定不是根据用户来读数据了

总得要有一个数据的格式吧,都没给格式怎么说

以字符单位 InputStreamReader

输入流读取文件 按行读取,然后根据用户的不同 用输出流不同写入不同的文件就可以了

换一个方式保存试试,肯定三保存方式不对,不然怎么会

json格式按行读取,试一试!

如果只是读这一个文件,可以使用HashMap 主键存id value为list集合,通过io流读取文件时从“,“那里截取id判断是否相等存数据

像这样?
Map bWriters = new HashMap<>();
try(BufferedReader bReader = new BufferedReader(new FileReader("fileName"))) {
String tStr = null;
while ((tStr = bReader.readLine()) != null){
String[] strs = tStr.split(",");
String usrId = strs[0];
BufferedWriter bWriter = bWriters.get(usrId);
if(bWriter == null){
bWriter = new BufferedWriter(new FileWriter("targetFileName"));
bWriters.put(usrId, bWriter);
}
bWriter.write(tStr);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(bWriters!=null){
for(BufferedWriter bw:bWriters.values()){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

根据保存的数据的方式读取

估计是保存方式不对,你可以换一个保存方式试试

可以看下hutool

看下hutool或json格式按行读取

用户是按名字还是类型区分?

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

public class Test {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
        String line = null;
        while ((line = reader.readLine()) != null) {
            String[] infos = line.split(",");
            RandomAccessFile file = new RandomAccessFile(infos[0], "rw");
            file.seek(file.length());
            file.write(line.substring(line.indexOf(",") + 1).getBytes());
            file.write("\n".getBytes());
            file.close();
        }
        reader.close();
    }
}

问题表达不是很清晰的,问题是这样吗:
一文件(文件A)中包含有不同用户的数据,用户数据中就有不同的文件名(B类文件)或者文件Id。你要读取B类文件吗

楼主没有给规则,就随便写了下

 package tool.readfile;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.io.Writer;

public class ReadAndwrite {
    public static void main(String[] args) {
        File file = new File("这里填写file的地址");
        File outFile = new File("输出file");
        try {
            BufferedReader read = new BufferedReader(new InputStreamReader(new FileInputStream(file), "utf-8"));
            String line = "";
            //写入文件,不会覆盖之前的,加参数true
            Writer writer = new FileWriter(outFile, true);
            // 读行操作
            while ((line = read.readLine()) != null) {
                // 按,分隔
                String[] arrString = line.split(",");
                for (String string : arrString) {
                    // 或string.endsWith("判断以什么结尾");或 使用正则匹配,看需要什么自己写
                    if (string.startsWith("判断以什么开始")) {
                        //写之前也可以进行一下操作
                        writer.write(string);
                    }
                }
            }
            //关闭流
            read.close();
            writer.close();
            //楼猪可以稍加改动就可以使用,不要照着抄嘿嘿
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

1.按行读取
2.每行按照分隔符分割,取第一个值作为文件名
3.每个文件内容已追加形式写入每行内容