BufferedWriter / FileWriter中的System.out.printf(“%4d”)

我做了一个乘法表。问题在于该表未按应有的顺序排序。

如果只想在屏幕上打印,则使用此System.out.printf(“%4d”)。如何使用BufferedWriter解决此问题?

代替此:

Irj be egy szamot:
5
1 2 3 4 5 
2 4 6 8 10 
3 6 9 12 15 
4 8 12 16 20 
5 10 15 20 25 `

我想要这个:

Irj be egy szamot: 
5
1  2  3  4  5 
2  4  6  8 10 
3  6  9 12 15 
4  8 12 16 20 
5 10 15 20 25 `

这是我的代码:

public class EgyszerEgy {
    public static void main(String[] args) {

        int a;
        int b;

        try {
            FileWriter writer = new FileWriter("EgyszerEgy.txt");
            BufferedWriter bf = new BufferedWriter(writer);

            Scanner tastatur = new Scanner(System.in);
            System.out.println("Irj be egy szamot: ");
            int szam = tastatur.nextInt();

            for (a = 1; a <= szam; ++a) {
                for (b = 1; b <= szam; ++b) {
                    int eredmeny = a * b;
                    String eredmenyString = String.valueOf(eredmeny);
                    bf.write(eredmenyString);
                    bf.write(" ");
                }
                bf.newLine();
            }
            bf.flush();
            bf.close();
        } catch (Exception e) {

        }

        // Kiolvasas
        //String result;
        try {
            FileReader fr = new FileReader("EgyszerEgy.txt");
            BufferedReader br = new BufferedReader(fr);
            String result;
            while ((result = br.readLine()) != null) {
                System.out.println(result);
            }
            br.close();
        } catch (Exception e) {

        }
    }
}
ygdbl 回答:BufferedWriter / FileWriter中的System.out.printf(“%4d”)

您已经知道如何用FileWriter包装BufferedWriter。现在,再次使用具有PrintWriter方法的printf()包装它。

您还应该使用try-with-resources。它是在Java 7中添加的,因此绝对没有充分的理由不使用它,除非您被Java 6或更早版本所困扰。

与使用NIO.2 API代替旧的File I / O API相同。

Scanner tastatur = new Scanner(System.in);
System.out.println("Irj be egy szamot: ");
int szam = tastatur.nextInt();

try (PrintWriter fout = new PrintWriter(Files.newBufferedWriter(Paths.get("EgyszerEgy.txt")))) {
    for (int a = 1; a <= szam; ++a) {
        for (int b = 1; b <= szam; ++b) {
            int eredmeny = a * b;
            fout.printf("%3d ",eredmenyString);
        }
        fout.println();
    }
}
,

您可以使用var2创建与set.seed(42) # Example data df <- data.frame( id = 1:10,var1 = sample(c("09F","09O","10F"),10,replace = TRUE),var2 = sample(c("09F",stringsAsFactors = FALSE ) library(tidyr) library(dplyr) df %>% # Convert to long pivot_longer(var1:var2) %>% # Assign category group_by(id) %>% mutate(category = case_when( any(value == "09F") ~ "arts",any(value == "09O") ~ "arts_o",TRUE ~ " ")) %>% ungroup() %>% # Convert back to wide pivot_wider(id_cols = c(id,category),names_from = "name",values_from = "value") #> # A tibble: 10 x 4 #> id category var1 var2 #> <int> <chr> <chr> <chr> #> 1 1 "arts" 09F 09F #> 2 2 "arts" 09F 09F #> 3 3 "arts" 09F 09O #> 4 4 "arts" 09F 09O #> 5 5 "arts_o" 09O 09O #> 6 6 "arts_o" 09O 10F #> 7 7 "arts_o" 09O 10F #> 8 8 "arts" 09F 09F #> 9 9 "arts" 10F 09F #> 10 10 " " 10F 10F 完全相同的格式,并将结果写入printf

本文链接:https://www.f2er.com/2437714.html

大家都在问