JAVA使用文件输入为输出中的特定字符换行

JAVA使用文件输入为输出中的特定字符换行,java,bufferedreader,filereader,fileoutputstream,Java,Bufferedreader,Filereader,Fileoutputstream,基本上,{和}需要在输出的新行上。但我不知道如何有效地阅读某些字符。我有一个程序,读取并输出这些行,但不知道从哪里开始。谢谢 public static void main(String[] args) throws IOException { // TODO Auto-generated method stub try { FileReader reader = new FileReader("textfile.txt"); BufferedReader buff

基本上,{和}需要在输出的新行上。但我不知道如何有效地阅读某些字符。我有一个程序,读取并输出这些行,但不知道从哪里开始。谢谢

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub

  try {
    FileReader reader = new FileReader("textfile.txt");
    BufferedReader bufferedReader = new BufferedReader(reader);

    String line;        

    while ((line = bufferedReader.readLine()) != null) {
      System.out.println(line);
    }
    reader.close();

  } catch (IOException e) {
    e.printStackTrace();
  }
}

正如您希望读取文件字符一样。不要读行,而是读字符

while ((r = reader.read()) != -1) {
            char ch = (char) r;
           // do your work
        }
    }
若你们因为某种原因想先读一行 一个你接电话

char[] chars = line.toCharArray();
for (Char char : chars)
{
    // check for that character and process accordingly
}

正如您希望读取文件字符一样。不要读行,而是读字符

while ((r = reader.read()) != -1) {
            char ch = (char) r;
           // do your work
        }
    }
若你们因为某种原因想先读一行 一个你接电话

char[] chars = line.toCharArray();
for (Char char : chars)
{
    // check for that character and process accordingly
}

下面是一种简单的方法(使用org.apache.commons.io进行文件解析):

解决方案 解释 这会将文件读取为字符串,并将所有出现的'{''}'替换为'\n{''\n}'

顺便说一句,只有'{'字符需要通过'\\'替换

编辑: 如何使用图书馆。 鉴于您似乎对Java不熟悉,要使用该库,您有多种选择,其中之一是使用项目管理工具,如“ApacheMaven”

但是,最简单的选择是(选择“commons-io-2.4-bin.zip”)


将文件commons-io-2.4.jar提取到您的项目中。假设您有一个现代化的IDE,它将知道在代码中使用该库时如何导入该库。

以下是一种简单的方法(使用org.apache.commons.io进行文件解析):

解决方案 解释 这会将文件读取为字符串,并将所有出现的'{''}'替换为'\n{''\n}'

顺便说一句,只有'{'字符需要通过'\\'替换

编辑: 如何使用图书馆。 鉴于您似乎对Java不熟悉,要使用该库,您有多种选择,其中之一是使用项目管理工具,如“ApacheMaven”

但是,最简单的选择是(选择“commons-io-2.4-bin.zip”)


将文件commons-io-2.4.jar提取到项目中。假设您有一个现代化的IDE,它将知道在代码中使用库时如何导入库。

您可以使用
字符串.replaceAll
方法,然后您可以添加一行新行并将
{
打印到新行

以下是您如何做到这一点:

 public static void main(String[] args) throws IOException {
       try {
        FileReader reader = new FileReader("textfile.txt");
        BufferedReader bufferedReader = new BufferedReader(reader);

        String line;





        while ((line = bufferedReader.readLine()) != null) {
         line=line.replaceAll("\\{", "\n{");
         line=line.replaceAll("\\}", "\n}");
            System.out.println(line);
        }
        reader.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

您可以使用
String.replaceAll
方法,然后可以添加新行并将
{
打印到新行

以下是您如何做到这一点:

 public static void main(String[] args) throws IOException {
       try {
        FileReader reader = new FileReader("textfile.txt");
        BufferedReader bufferedReader = new BufferedReader(reader);

        String line;





        while ((line = bufferedReader.readLine()) != null) {
         line=line.replaceAll("\\{", "\n{");
         line=line.replaceAll("\\}", "\n}");
            System.out.println(line);
        }
        reader.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

输入文件将是一个简单的java类,其中{和}与代码位于同一行,例如{publicstaticvoidmain(String[]argv),我想将其分开。如果您只想修改代码的格式,请使用
astyle
indent
之类的工具。谢谢,但我需要为此编写一段代码。然后您可以使用Apache Fileutils
readFileToString()将文件内容读入字符串
,并使用类似
String.replace()
String.replaceAll()
。将
{
替换为
\n{
等方法。程序将是几行代码。输入文件将是一个简单的java类,其中{和}与代码位于同一行,例如{public static void main(String[]argv),我想将其分开。如果您只想修改代码的格式,请使用
astyle
indent
之类的工具。谢谢,但我需要为此编写一段代码。然后您可以使用Apache Fileutils
readFileToString()将文件内容读入字符串
,并使用类似
String.replace()
String.replaceAll()
。将
{
替换为
\n{
等方法。该程序只需几行代码。downvoter请帮助我解释此处的错误。downvoter请帮助我解释此处的错误。