小编bri*_*ian的帖子

使用Files.lines修改文件

我想读一个文件并用新文本替换一些文本.使用asm和int 21h会很简单,但我想使用新的java 8流.

    Files.write(outf.toPath(), 
        (Iterable<String>)Files.lines(inf)::iterator,
        CREATE, WRITE, TRUNCATE_EXISTING);
Run Code Online (Sandbox Code Playgroud)

在那里的某个地方,我想要一个lines.replace("/*replace me*/","new Code()\n");.新行是因为我想测试在某处插入一段代码.

这是一个游戏示例,它不是我想要的方式,但编译.我只需要一种方法来拦截迭代器中的行,并用代码块替换某些短语.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import static java.nio.file.StandardOpenOption.*;
import java.util.Arrays;
import java.util.stream.Stream;

public class FileStreamTest {

    public static void main(String[] args) {
        String[] ss = new String[]{"hi","pls","help","me"};
        Stream<String> stream = Arrays.stream(ss);

        try {
            Files.write(Paths.get("tmp.txt"),
                    (Iterable<String>)stream::iterator,
                    CREATE, WRITE, TRUNCATE_EXISTING);
        } catch (IOException ex) {}

//// I'd like to hook this next part into Files.write part./////
        //reset stream
        stream = Arrays.stream(ss);
        Iterable<String> it = stream::iterator;
        //I'd like …
Run Code Online (Sandbox Code Playgroud)

java-8 java-stream

20
推荐指数
1
解决办法
1万
查看次数

JavaFX:如何在JavaFX中正确使用ProgressIndicator

我是Java中的新手.我的JavaFX应用程序有问题,我需要在数据库查询之前启动我的ProgressIndicator(类型为INDETERMINATE).这是我的代码的一部分:

spinner.setVisible(true);
passCripto = cripto.criptoPass(pass);
MyDao dao = new MyDaoImpl();
boolean isLoginOk = dao.isUserOk(user, passCripto);
boolean isStatusOk = dao.idStatusUser(user);
Run Code Online (Sandbox Code Playgroud)

完成后,我需要将微调器设置为FALSE,但只有在数据库查询完成时才会显示微调器.我怎么解决这个问题?

谢谢.

我这样做,但没有解决:

Task<Boolean> taskValidaLogin = new Task<Boolean>() {
    @Override
    protected Boolean call() throws Exception {
        boolean validaLogin = ACDCDao.validaUsuario(usuario, senhaCripto);

        return validaLogin;
    }
};

Task<Boolean> taskValidaStatus = new Task<Boolean>() {
    @Override
    protected Boolean call() throws Exception {
        boolean validaStatus = ACDCDao.validaStatusUsuario(usuario);

        return validaStatus;
    }
};

new Thread(taskValidaLogin).start();
new Thread(taskValidaStatus).start();
if (taskValidaLogin.getValue()) {
    if (taskValidaStatus.getValue()) {
        //do something
    }
Run Code Online (Sandbox Code Playgroud)

java task thread-safety javafx-8

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

javafx-8 ×1

task ×1

thread-safety ×1