Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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_Outputstream - Fatal编程技术网

Java 导航目录结构并对每个处理过的文件进行唯一命名

Java 导航目录结构并对每个处理过的文件进行唯一命名,java,outputstream,Java,Outputstream,我有一个目录结构,其形式是start/三个/*文件* 我的目标是构造这个程序,使它能够自主地导航我的目录结构,获取每个文件,然后处理它,这似乎是正确的 但我还需要将输出写入具有唯一名称的新文件,即应处理名为00001.txt的文件,并将结果写入00001_output.txt 我认为我正确地实现了这一点,但显然不是 我在哪里迷路了 String dirStart = "/home/data/"; Path root = Paths.get(dirStart); Fil

我有一个目录结构,其形式是
start
/
/
两个
//strong>
三个
/
*文件*

我的目标是构造这个程序,使它能够自主地导航我的目录结构,获取每个文件,然后处理它,这似乎是正确的

我还需要将输出写入具有唯一名称的新文件,即应处理名为
00001.txt
的文件,并将结果写入
00001_output.txt

我认为我正确地实现了这一点,但显然不是

我在哪里迷路了

    String dirStart = "/home/data/";

    Path root = Paths.get(dirStart);

    Files.walkFileTree(root.toAbsolutePath().normalize(), new SimpleFileVisitor<Path>() 
    {
        @Override
        public FileVisitResult visitFile(Path file, java.nio.file.attribute.BasicFileAttributes attrs) throws IOException 
        {


            try(InputStream inputStream = Files.newInputStream(file);
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)))
            {

                // CHANGE OUTPUT TO NEW FILE
                String print_file = file.getFileName().toString();
                String fileNameWithOutExt = FilenameUtils.removeExtension(print_file);
                System.out.println(fileNameWithOutExt);

                PrintStream out = new PrintStream(new FileOutputStream( fileNameWithOutExt + "_output.txt" ) );
                System.setOut(out);


                // SOUP PART
                StringBuilder sb = new StringBuilder();
                String line = bufferedReader.readLine();

                while (line != null) 
                {

                    sb.append(line);
                    sb.append(System.lineSeparator());
                    line = bufferedReader.readLine();
                }
                String everything = sb.toString();


                Document doc = Jsoup.parse(everything);
                String link = doc.select("block.full_text").text();
                System.out.println(link);


            } 
            catch (IOException e) 
            {
                e.printStackTrace();
            }

            return FileVisitResult.CONTINUE;
        }
    }); 
String dirStart=“/home/data/”;
路径根=Path.get(dirStart);
Files.walkFileTree(root.toabsolutionPath().normalize(),新的SimpleFileVisitor())
{
@凌驾
公共文件VisitResult visitFile(路径文件,java.nio.file.attribute.BasicFileAttributes attrs)引发IOException
{
try(InputStream-InputStream=Files.newInputStream(file);
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(inputStream)))
{
//将输出更改为新文件
字符串print_file=file.getFileName().toString();
字符串fileNameWithOutExt=FilenameUtils.removeExtension(打印文件);
System.out.println(fileNameWithOutExt);
PrintStream out=新的PrintStream(新的FileOutputStream(fileNameWithOutExt+“_output.txt”);
系统放样;
//汤部
StringBuilder sb=新的StringBuilder();
String line=bufferedReader.readLine();
while(行!=null)
{
某人附加(行);
sb.append(System.lineSeparator());
line=bufferedReader.readLine();
}
String everything=sb.toString();
Document doc=Jsoup.parse(所有内容);
字符串链接=doc.select(“block.full_text”).text();
System.out.println(链接);
} 
捕获(IOE异常)
{
e、 printStackTrace();
}
返回FileVisitResult.CONTINUE;
}
}); 

这也是我的问题,它可能会给我提供一些额外的见解,让我知道我实际上在做什么

系统出发似乎是个坏主意

下面是一些未经测试的代码,可能会起作用

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import org.apache.commons.io.FilenameUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class App {

    public static void main(String[] args) throws IOException {
        String dirStart = "/home/data/";

        Path root = Paths.get(dirStart);

        Files.walkFileTree(root.toAbsolutePath().normalize(), new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, java.nio.file.attribute.BasicFileAttributes attrs) throws IOException {

                // CHANGE OUTPUT TO NEW FILE
                String print_file = file.getFileName().toString();
                String fileNameWithOutExt = FilenameUtils.removeExtension(print_file);
                System.out.println(fileNameWithOutExt);

                // SOUP PART
                String everything = new String(Files.readAllBytes(file), StandardCharsets.UTF_8);

                Document doc = Jsoup.parse(everything);
                String link = doc.select("block.full_text").text();

                try (PrintStream out = new PrintStream(new FileOutputStream(fileNameWithOutExt + "_output.txt"))) {
                    out.println(link);
                } catch (IOException e) {
                    e.printStackTrace();
                }

                return FileVisitResult.CONTINUE;
            }
        });
    }

}
import java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.PrintStream;
导入java.nio.charset.StandardCharset;
导入java.nio.file.FileVisitResult;
导入java.nio.file.Files;
导入java.nio.file.Path;
导入java.nio.file.path;
导入java.nio.file.SimpleFileVisitor;
导入org.apache.commons.io.FilenameUtils;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
公共类应用程序{
公共静态void main(字符串[]args)引发IOException{
字符串dirStart=“/home/data/”;
路径根=Path.get(dirStart);
Files.walkFileTree(root.toabsolutionPath().normalize(),新的SimpleFileVisitor()){
@凌驾
公共文件VisitResult visitFile(路径文件,java.nio.file.attribute.BasicFileAttributes attrs)引发IOException{
//将输出更改为新文件
字符串print_file=file.getFileName().toString();
字符串fileNameWithOutExt=FilenameUtils.removeExtension(打印文件);
System.out.println(fileNameWithOutExt);
//汤部
String everything=新字符串(Files.readAllBytes(file),StandardCharsets.UTF_8);
Document doc=Jsoup.parse(所有内容);
字符串链接=doc.select(“block.full_text”).text();
try(PrintStream out=newprintstream(newfileoutputstream(fileNameWithOutExt+“\u output.txt”)){
out.println(link);
}捕获(IOE异常){
e、 printStackTrace();
}
返回FileVisitResult.CONTINUE;
}
});
}
}

系统设置似乎是个坏主意

下面是一些未经测试的代码,可能会起作用

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import org.apache.commons.io.FilenameUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class App {

    public static void main(String[] args) throws IOException {
        String dirStart = "/home/data/";

        Path root = Paths.get(dirStart);

        Files.walkFileTree(root.toAbsolutePath().normalize(), new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, java.nio.file.attribute.BasicFileAttributes attrs) throws IOException {

                // CHANGE OUTPUT TO NEW FILE
                String print_file = file.getFileName().toString();
                String fileNameWithOutExt = FilenameUtils.removeExtension(print_file);
                System.out.println(fileNameWithOutExt);

                // SOUP PART
                String everything = new String(Files.readAllBytes(file), StandardCharsets.UTF_8);

                Document doc = Jsoup.parse(everything);
                String link = doc.select("block.full_text").text();

                try (PrintStream out = new PrintStream(new FileOutputStream(fileNameWithOutExt + "_output.txt"))) {
                    out.println(link);
                } catch (IOException e) {
                    e.printStackTrace();
                }

                return FileVisitResult.CONTINUE;
            }
        });
    }

}
import java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.PrintStream;
导入java.nio.charset.StandardCharset;
导入java.nio.file.FileVisitResult;
导入java.nio.file.Files;
导入java.nio.file.Path;
导入java.nio.file.path;
导入java.nio.file.SimpleFileVisitor;
导入org.apache.commons.io.FilenameUtils;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
公共类应用程序{
公共静态void main(字符串[]args)引发IOException{
字符串dirStart=“/home/data/”;
路径根=Path.get(dirStart);
Files.walkFileTree(root.toabsolutionPath().normalize(),新的SimpleFileVisitor()){
@凌驾
公共文件VisitResult visitFile(路径文件,java.nio.file.attribute.BasicFileAttributes attrs)引发IOException{
//将输出更改为新文件
字符串print_file=file.getFileName().toString();
字符串fileNameWithOutExt=FilenameUtils.removeExtension(打印文件);
System.out.println(fileNameWithOutExt);
//汤部
String everything=新字符串(Files.readAllBytes(file),StandardCharsets.UTF_8);
Document doc=Jsoup.parse(所有内容);
字符串链接=doc.select(“block.full_text”).text();
try(PrintStream out=newprintstream(newfileoutputstream(fileNameWithOutExt+“\u output.txt”)){
out.println(link);
}捕获(IOE异常){
e、 printStackTrace();
}
雷图