这个io流这是什么问题

img


这个io流输入哪里出错了是什么问题为什么一直输入不了,怎么改才是对的输出不了java怎么改哪里有问题

这是文件读取吧,哪里有输入的, 你文件路径对不对, 在catch里面 输出一下异常信息看看

e.printStackTrace();

检查文件后缀是不是隐藏了,实际名称 是 english.txt.txt

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/351471
  • 这篇博客也不错, 你可以看下Java: 实现将读取制定文件内容,排序后输出到新文件(IO,字节流,字符流,缓冲流)
  • 除此之外, 这篇博客: 【Java基础知识】IO流--字节流读写数据以及复制文件的几种方式中的 6.2 计算机是如何识别应该把2个字节转换为一个汉字? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在GBK字符编码集中,汉字是由2个字节组成,因为GBK兼容ISO-8859-1,正数的单字节已被占用
    所以汉字的第一个字节必须为负数第二个字节大多也为负数。如:

    public class StringDemo {
    	public static void main(String[] args) throws UnsupportedEncodingException {
    		String s1 = "Xyz123";
    		String s2 = "手可摘星辰";
    		byte[] bys1 = s1.getBytes();
    		byte[] bys2 = s2.getBytes();
    		System.out.println(Arrays.toString(bys1));
    		System.out.println(Arrays.toString(bys2));
    	}
    }
    /*  GBK编码字符集下:
    	[88, 121, 122, 49, 50, 51]
    	[-54, -42, -65, -55, -43, -86, -48, -57, -77, -67]
     * */
    
  • 您还可以看一下 黄菊华老师的基于java后台 微信在线考试小程序 毕业设计毕设源码 使用教程课程中的 在线考试小程序-小程序设置和功能小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    针对输入输出流无法工作的问题,可以先检查代码中是否有如下问题:

    1. 是否确保输入输出流打开时没有被其他程序占用;
    2. 是否在使用输入输出流对象时,进行了实例化操作;
    3. 是否使用了正确的输入输出流对象,例如:InputStream或者Reader等;
    4. 是否使用了正确的读写方式,例如:buffered reader或者inputstream等;
    5. 是否使用了正确的输入输出流参数,例如:FileInputStream或FileOutputStream等。

    针对如何改进代码以正确输出数据并运行输入输出流,可以进行如下操作:

    1. 检查代码是否错误,检查输入输出流参数是否正确,检查是否使用了正确的输入输出流对象;
    2. 检查输入输出流的处理方式是否正确,是否正确使用缓冲流;
    3. 检查输入输出流是否被关闭或者错误处理;
    4. 提高每次交互数据量,减少交互次数;
    5. 使用try catch语句捕获可能出现的异常情况。

    下面是一个使用Java输入输出流的示例代码,通过分步解释的方式,帮助您更好地理解如何使用输入输出流:

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class IOstream {
        // 定义静态常量
        public static final String FILEPATH = "D:/test.txt";
        public static final String OUTPUT = "D:/test_out.txt";
    
        public static void main(String[] args) throws IOException {
            IOstream tester = new IOstream();
            String text = "test";
            // 写入文件
            tester.writeFile(FILEPATH, text);
            // 读取文件
            String content = tester.readFile(FILEPATH);
            System.out.println(content);
            // 复制文件
            tester.copyFile(FILEPATH, OUTPUT);
            // 读取复制后的文件
            content = tester.readFile(OUTPUT);
            System.out.println(content);
        }
    
        /**
         * 写入文件
         *
         * @param filePath
         *            文件路径
         * @param text
         *            待写入的文本
         */
        public void writeFile(String filePath, String text) {
            FileWriter writer = null;
            try {
                // 创建一个FileWriter对象
                writer = new FileWriter(filePath);
                // 写入文本
                writer.write(text);
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                try {
                    // 关闭写入流
                    writer.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
    
        /**
         * 读取文件
         *
         * @param filePath
         *            文件路径
         * @return 返回文件内容
         */
        public String readFile(String filePath) {
            String content = "";
            File file = new File(filePath);
            try {
                // 读取文件内容
                FileReader reader = new FileReader(file);
                BufferedReader bufferedReader = new BufferedReader(reader);
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    content += line;
                }
                bufferedReader.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            return content;
        }
    
        /**
         * 复制文件
         *
         * @param srcPath
         *            源文件路径
         * @param targetPath
         *            目标文件路径
         */
        public void copyFile(String srcPath, String targetPath) {
            File srcFile = new File(srcPath);
            File targetFile = new File(targetPath);
            FileReader reader = null;
            FileWriter writer = null;
            try {
                // 读取源文件
                reader = new FileReader(srcFile);
                BufferedReader bufferedReader = new BufferedReader(reader);
                String line;
                String text = "";
                while ((line = bufferedReader.readLine()) != null) {
                    text += line;
                }
                bufferedReader.close();
    
                // 写入目标文件
                writer = new FileWriter(targetFile);
                BufferedWriter bufferedWriter = new BufferedWriter(writer);
                bufferedWriter.write(text);
                bufferedWriter.flush();
                bufferedWriter.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                try {
                    // 关闭流
                    reader.close();
                    writer.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }