Java 我已经编写了一个代码,用于将文件中的所有小写字母更改为大写字母
我使用FileInputStream、FileOutputStream、DataInputStream和DataoutputStream类编写代码,如下所示: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"
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();
}
}
}