【问题标题】:filewriting and reading in java always returns as nulljava中的文件写入和读取总是返回为null
【发布时间】:2013-11-24 16:06:52
【问题描述】:

帮助!代码一直返回为“nullnull”!我正在努力做到这一点,如果我有多个元素,它将显示在控制台中。这更像是一个两部分的问题...... 1. 我将多个不同的元素符号保存到一个变量中,它不会起作用吗?我应该如何使它每次都保存在不同的变量下? 2. 为什么一直返回nullnull?我认为应该将某些内容保存为元素 1。虽然对 element11 不太确定... 感谢您的帮助!

import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import javax.swing.JOptionPane;

public class Science1 {

    @SuppressWarnings("deprecation")
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        String element;
        int more;
        FileInputStream fin;
        JOptionPane.showMessageDialog(null, "Balancing chemical equations, capable for anything with more than one compound");
        element = JOptionPane.showInputDialog("Please input an element");
        String element1 = null;
        element = element1;
        String element11 = null;
        //MORE VARIABLES?
        more = JOptionPane.showConfirmDialog(null, "Do you have more elements on this side?", element, JOptionPane.YES_NO_OPTION);
        while(more == 0){
            element = JOptionPane.showInputDialog("Please input an element");

            element = element11;
            Writer writer = null;
            try {
                writer = new BufferedWriter(new FileWriter("test.txt"));
                writer.write(element1 + element11);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (writer != null) try { writer.close(); } catch (IOException ignore) {}
            }
            //MORE VARIABLES?
            more = JOptionPane.showConfirmDialog(null, "Do you have more elements on this side?", element, JOptionPane.YES_NO_OPTION);
        }
        try
        {
            // Open an input stream
            fin = new FileInputStream ("test.txt");

            // Read a line of text
            System.out.println( new DataInputStream(fin).readLine() );

            // Close our input stream
            fin.close();        
        }
        // Catches any error conditions
        catch (IOException e)
        {
            System.err.println ("Unable to read from file");
            System.exit(-1);
        }
    }
}

【问题讨论】:

    标签: java filereader filewriter


    【解决方案1】:

    本质上,你有这个:

        String element1 = null;
        String element11 = null;
    
        while(more == 0){
            try {
                writer = new BufferedWriter(new FileWriter("test.txt"));
                writer.write(element1 + element11);
    

    但是你没有设置 element1 和 element11 。结果应该是“nullnull”吗?

    【讨论】:

      【解决方案2】:
      1. 读取element 的输入后,您已将其分配给变量element1,即null

        element = JOptionPane.showInputDialog("Please input an element");
        String element1 = null;  //<<-----remove
        element = element1;   //<<-----remove
        
      2. while 循环之外初始化您的 BufferedWriter 实例。

      3. 如果您使用的是 java 7,请使用 try-with-resource 语句,它会自动为您关闭资源。

      【讨论】:

        【解决方案3】:

        替换

        element = element1;
        

        element1 = element;
        

             element = element11;
        

             element11 = element;
        

        然后将每个新单词附加到文本文件中

        try {
            PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("test.txt", true)));
            writer.println( element11);
            writer.close();
            } catch (IOException e) {
             //!
            }
        

        【讨论】:

          猜你喜欢
          • 2019-08-29
          • 2023-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-14
          相关资源
          最近更新 更多