Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我已经编写了一个代码,用于将文件中的所有小写字母更改为大写字母_Java - Fatal编程技术网

Java 我已经编写了一个代码,用于将文件中的所有小写字母更改为大写字母

Java 我已经编写了一个代码,用于将文件中的所有小写字母更改为大写字母,java,Java,我使用FileInputStream、FileOutputStream、DataInputStream和DataoutputStream类编写代码,如下所示: import java.io.*; class Demo { public static void main(String args[]) throws IOException { File f1=new File("A.txt"); File f2=new File("Temp.txt"

我使用FileInputStream、FileOutputStream、DataInputStream和DataoutputStream类编写代码,如下所示:

import java.io.*;
class Demo
{
    public static void main(String args[]) throws IOException
    {

        File f1=new File("A.txt");
        File f2=new File("Temp.txt");
        if(!f1.exists())
        {
            System.out.print(" file doesn't exist.");
            System.exit(0);
        }
        if(!f2.exists())
        {
            if(!f2.createNewFile())
            {
                System.exit(0);
            }
        }

        FileInputStream fis=new FileInputStream(f1);
        FileOutputStream fos=new FileOutputStream(f2);
        DataInputStream dis=new DataInputStream(fis);
        DataOutputStream dos=new DataOutputStream(fos);
        char ch;
        try
        {
            while(true)
            {
                ch=dis.readChar();
                if(ch>=97 && ch<=122)
                {
                    ch=(char)(ch-32);
                }
                dos.writeChar(ch);
            }
        }
        catch(Exception e1)
        {
            fos.flush();
            fis=new FileInputStream(f2);
            fos=new FileOutputStream(f1);
            dis=new DataInputStream(fis);
            dos=new DataOutputStream(fos);
            try
            {
                while(true)
                {
                    ch=dis.readChar();
                    dos.writeChar(ch);
                }
            }
            catch(Exception e2)
            {
                fos.flush();

            }
            finally
            {
                fis.close();
                fos.close();
            }
        }   
    }
}
import java.io.*;
课堂演示
{
公共静态void main(字符串args[])引发IOException
{
文件f1=新文件(“A.txt”);
文件f2=新文件(“Temp.txt”);
如果(!f1.exists())
{
System.out.print(“文件不存在”);
系统出口(0);
}
如果(!f2.exists())
{
如果(!f2.createNewFile())
{
系统出口(0);
}
}
FileInputStream fis=新的FileInputStream(f1);
FileOutputStream fos=新的FileOutputStream(f2);
DataInputStream dis=新的DataInputStream(fis);
DataOutputStream dos=新的DataOutputStream(fos);
char ch;
尝试
{
while(true)
{
ch=dis.readChar();

如果(ch>=97&&ch,则可以使用BufferedReader和BufferedWriter类来读取整行,转换为大写并写入整行

如果出现异常,我只是打印堆栈跟踪以演示缓冲读写器的使用,您可以在f2中写入相同的内容,或者根据需要执行任何操作

import java.io.*;

class Demo {
    public static void main(String args[]) throws IOException {

        File f1 = new File("A.txt");
        File f2 = new File("Temp.txt");

        if (!f1.exists()) {
            System.out.print(" file doesn't exist.");
            System.exit(0);
        }

        if (!f2.exists()) {
            if (!f2.createNewFile()) {
                System.exit(0);
            }
        }

        BufferedReader bufferedReader = new BufferedReader(new FileReader(f1));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(f2));
        String line;

        try {
            while ((line = bufferedReader.readLine()) != null) {
                // here you can have counters for no. of lines and no. of 
                // characters for debugging and statistics purpose
                System.out.println(line);
                bufferedWriter.write(line.toUpperCase());
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            bufferedReader.close();
            bufferedWriter.close();
        }
    }
}

这段代码演示了使用Java 8流执行此操作的一个简短方法-只需读取所有行,将它们映射到大写等效项并将它们打印到PrintWriter。添加额外的错误处理以处理丢失的文件等,您就完成了

您不能使用
DataInputStream
读取不是由
DataOut写入的数据putStream
。尝试改用
文件读取器
文件编写器
。@KevinAnderson有趣!DataInputStream
如何知道一个文件是否由
DataOutputStream
编写?
DataInputStream
并不真正“知道,”因此,一个文件是由
DataOutputStream
编写的;它只是希望数据采用
DataOutputStream
编写的特定格式,如果输入数据不是预期格式,它将以各种方式失败,有些细微,有些粗俗。可爱!非常感谢。可能会重复
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ConvertLowerToUpper {
    public static void main(String[] args) throws IOException {
        try (PrintWriter output = new PrintWriter("Temp.txt")) {
            Files.readAllLines(Paths.get("A.txt")).stream()
                    .map(String::toUpperCase)
                    .forEach(output::println);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}