วิธีที่จะพิมพ์ผลลัพธ์ของช่องว่างพิมพ์วิธีการเข้าไปในแฟ้มของจาวา PrintWriter

0

คำถาม

ฉันกำลังทำอะไรออกกำลังทำงานของจาวาตั้งโปรแกรมแน่นอนว่า,คำถามก็เป็นงั้น:

เขียนเป็นวิธีการเรียก printTree นั่นแสดงผลจะเป็นแฟ้มเป็นสามเหลี่ยมของ asterisks อ้างอิงจากความสูงค่าอผ่านไปขั้นตอนการรักษาที่เราให้เธอ ทดสอบวิธีการนี้อยู่ในหลักวิธีการ.

  • E. g. สามเหลี่ยมของความสูงของ 3 ควรจะส่งออกไปเป็นแฟ้มเรียก file14:

ฉันแค่ไม่แน่ใจว่าจะเขียนไม่มีประโยชน์ที่จะกลับแฟ้มที่ผมเคยทำที่หลักวิธีการ. ฉันอยากจะย่องกำลังนำเข้าขออื่นจาวา.บ io วิธีการของนอกเหนือจาก FileWriter แต่มีความช่วยเหลือซาบซึ้งขอบคุณนะ

import java.io.PrintWriter;

public class OutputToFile14 {

    public static void main(String[] args) throws Exception{
        
        //Creating PrintWriter
        PrintWriter output = new PrintWriter("file14.txt");
        
        //writing method output to file
        output.write(printTree(4));
        
        //saving file
        output.close();
    }

    public static void printTree (int height) throws IOException{
        
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < height; j++) {
                if (j < i) {
                    System.out.print("*");
                }
            }
            System.out.println();
        }
    } 
}
call file java methods
2021-11-24 02:22:55
2

คำตอบที่ดีที่สุด

3

สี่การสังเกตการณ์ System.out เป็ PrintStream (และคุณสามารถผ่าน PrintStream ต้องของคุณวิธีการ). try-with-Resources อนุญาตให้คุณต้องกำจัด explicit close() โทรมา ใช้ System.getProperty("user.home") อนุญาตให้คุณเขียเข้าไปในบ้านโฟลเดอร์โดยตรง(ซึ่งจะมีประโยชน์). และใช้ j < i แทนที่จะเป็น if (j < i) ในตนภายในของคุณด้วยนะ อย่าง

public static void main(String[] args) throws Exception {
    try (PrintStream output = new PrintStream(
            new File(System.getProperty("user.home"), "file14.txt"))) {
        printTree(output, 4);
    }
}

public static void printTree(PrintStream out, int height) throws IOException {
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < i; j++) {
            out.print("*");
        }
        out.println();
    }
}

แล้วก็ตั้งแต่งานจาวาอน 11,

public static void printTree(PrintStream out, int height) throws IOException {
    for (int i = 0; i < height; i++) {
        out.println("*".repeat(i)); // You might want "*".repeat(1 + i)
    }
}
2021-11-24 02:40:07

ที่ดีกว่านี้ตอบคำขอบคุณ
Hovercraft Full Of Eels

ฉันไม่เหมือนกัดี versed กับการส่งในวัตถุที่เถียงกันต้องใช้วิธีนี้แต่ฉันคิดว่าคล้ายกับคนอื่นการตอบสนองนี้ก็ทำให้มันดังนั้นของมันทุกอย่าง"หนึ่งอก็เข้าแถวเรียงหน้า":ขอประกาศว่ากองแฟ้มการตั้งชื่อมัน และจากนั้นมันจึงต้องไปหลบอยู่ในพิมพ์ข้อมูลเสียงทำให้มันดังนั้นมัน sendable เป็นข้อโต้แย้ง? ฉันอยากได้ยินบางอย่างความชัดเจนคะแนนของฉันแน่นอนคือ f อยู่ในช่วงก่อนขั้นของการเขียนแฟ้มดังนั้นฉันก็อยากจะเข้าใจมากกว่า
Achor Gabriel

System.out เป็ PrintStream. คุณสามารถสร้างของตัวเอง PrintStream แผล เขียนไป File. กับเรื่องนี้ constructor. สำหรับ การส่งออบเจ็กต์เป็นเถียงกัน, main(String[] args) (มันเป็นมาสิ่งแรกที่คุณทำอย่าง). หวังว่านั่นช่วยได้เยอะเลย
Elliott Frisch

@ElliottFrisch ขอบคุณ! ฉันคิดว่าเรื่องนี้จะจบลงต้องการมากกว่างานวิจัยทำงานตอนจบของฉันแต่ฉันคิดว่าฉันจะนำในทิศทางที่ถูกต้อง ขอบคุณสำหรับสิ่งเหล่านั้นหลักส่วนหัวจริงบางอย่างที่ฉันไม่รู้แต่ตอนนี้. ขอบคุณมากครั
Achor Gabriel
-2

คุณอาจจะแก้ปัญหามันอย่างนี้

import java.io.PrintWriter;

public class OutputToFile14 {

    public static void main(String[] args) throws Exception{
        
        //Creating PrintWriter
        PrintWriter output = new PrintWriter("file14.txt");
        
        //writing method output to file
        output.write(printTree(4));
        
        //saving file
        output.close();
    }

    public static String printTree (int height) throws IOException{
        String output = "";
        
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < height; j++) {
                if (j < i) {
                    System.out.print("*");
                    output += "*";
                }
            }
            System.out.println();
            output += "\r\n";
        }
        return output;
    } 
}

นี่มันค่อนข้างจะน่าเกลียดวิธีแก้ปัญหามันอย่างรวดเร็ว

import java.io.PrintWriter;

public class OutputToFile14 {

    public static void main(String[] args) throws Exception{
        
        //Creating PrintWriter
        PrintWriter output = new PrintWriter("file14.txt");
        
        //writing method output to file
        //output.write(printTree(4));
        printTree(4, output);
        
        //saving file
        output.close();
    }

    public static void printTree (int height, PrintWriter pw) throws IOException{
        
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < height; j++) {
                if (j < i) {
                    System.out.print("*");
                    pw.write("*");
                }
            }
            System.out.println();
            pw.write("\r\n");
        }
    } 
}
2021-11-24 02:35:23

ฉันซาบซึ้ง greatly คำตอบของคุณ! ฉันคิดว่าฉันกำลังจะลงทางห่างจากนี่ถึงแม้ว่าขอโทษที่ฉันไม่รู้จริงๆว่ายังไงต้องทำงานกับครอบค PW เป็นพารามิเตอร์สำหรับอนาคตบุคคลอ้างอิงหรอก ขอบคุณนะขอบคุณมากครับ
Achor Gabriel

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่