사용자가 데이터를 입력 한 후 텍스트 파일에 데이터를 쓰고 텍스트 파일을 읽고 데이터를 표시하는 간단한 튜토리얼 프로그램을 만들고 있습니다. 그러나 모든 데이터가 텍스트 파일에 기록되는 것은 아닙니다. 다음을 참조하시기 바랍니다 :BufferedWriter가 모든 정보를 쓰지 않습니다.
이 내 코드입니다 : 당신이 볼 수 있듯이
package chasi.fecalMatter.ExcrementalProgram;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
public class RedundantExcrement {
static String inputName = JOptionPane.showInputDialog("Please input your FULL name:");
static String inputUsername = JOptionPane.showInputDialog("Please input your desired Username:");
static String inputJobTitle = JOptionPane.showInputDialog("Please input your Job title:");
static String inputSalary = JOptionPane.showInputDialog("Please input your monthly salary:");
static int convertedSalary = 0; /*Convert salary from String to int*/
static int benefitDeduction = 0;
static String empFileName = inputUsername+"INFO";
static BufferedWriter bwriter = null;
public static void main (String[] args) throws IOException {
//Catch NumberFormatException.
try {
Integer.parseInt(inputSalary);
} catch (NumberFormatException nfEx) {
JOptionPane.showMessageDialog(null, "Please ensure that " +
"your salary is entered in NUMERIC form.", "ERROR!", 2);
return;
}
//Specify instructions as regard salary -to- Benefit deduction ratio
if (convertedSalary >= 3500) {
benefitDeduction = 300;
} else {
benefitDeduction = 180;
}
try { /*Catches IOException AND NullPointerException*/
FileWriter fwriter = new FileWriter(empFileName);
bwriter = new BufferedWriter(fwriter);
bwriter.write(inputName);
bwriter.newLine();
bwriter.write(inputJobTitle);
bwriter.newLine();
bwriter.write(inputSalary);
bwriter.newLine();
bwriter.write(benefitDeduction);
bwriter.newLine();
bwriter.write("----------");
bwriter.newLine();
} catch (IOException | NullPointerException ionpEx) {
JOptionPane.showMessageDialog(null, "An ERROR has occured", "ERROR!", 2);
return;
} finally { /*CLOSE the writer*/
try{
if (bwriter != null) {
bwriter.close();
}
} catch (IOException ioEx2) {
JOptionPane.showMessageDialog(null, "ERROR!");
return;
}
}
}
}
, 나는 INT convertedSalary
변환하는 데 사용하는 사용자 입력 된 번호로 문자열에서 inputSalary
. 내 방법에서는 내가 사용한다.
try {
Integer.parseInt(inputSalary);
} catch (NumberFormatException nfEx) {
JOptionPane.showMessageDialog(null, "Please ensure that " +
"your salary is entered in NUMERIC form.", "ERROR!", 2);
return;
}
비밀리에 사용한다. 나중에 BufferedWriter에 의해 쓰여질 것으로 추측됩니다. 사용자의 급여의 값에 따라 내 benefitDeduction
의 값을 변경하기 위해
try {
Integer.parseInt(inputSalary);
} catch (NumberFormatException nfEx) {
JOptionPane.showMessageDialog(null, "Please ensure that " +
"your salary is entered in NUMERIC form.", "ERROR!", 2);
return;
}
:
나는이 코드가 있습니다.
그러나, benefitDeduction
는 텍스트 파일에 기록되고, 대신에,이 얻을 : 당신이 도울 수 있다면
감사합니다!
'나는 또한이 코드는'이것은 복사 및 붙여 넣기 오류입니까? 그것은 위와 같은 코드를 포함합니다. – Tom
어느 jdk를 사용하고 있습니까? 표준 Java에는'BufferedWriter.write (String)'메소드가 없습니다. 귀하의 코드가 실제로 컴파일됩니까? – Dima
Btw :'convertedSalary'는'Integer.parseInt (inputSalary); '의 반환 값을 할당하지 않기 때문에 항상'0'으로 보입니다. 그리고 가변적으로'userSalary'는 없지만'inputSalary'는'2500 '을 세 번째 행으로 포함하고 있기 때문에 ('bwriter.write (inputSalary);') 파일에 쓰여진 것 같습니다. – Tom