标签: inputstreamreader

Java inputStreamReader Charset

我想ping一个目标IP地址并收到响应.为了实现这一点,我在Java中使用了带有runtime.exec方法和进程类的Windows命令行.我正在使用inputStreamReader获取响应.

我的默认字符集是windows-1254,它是土耳其语.当我收到它时,响应包含土耳其语字符,但在控制台中没有正确显示土耳其语字符.

我想从我得到的响应中获取一个数值,但我搜索的值包含一些土耳其字符,所以当我查找它时,我找不到它.

代码如下,我需要知道的是如何在这里看到土耳其字符:

runtime = Runtime.getRuntime();
process = runtime.exec(pingCommand);

BufferedReader bReader = new BufferedReader(
        new InputStreamReader(process.getInputStream(), "UTF8"));

String inputLine;
while ((inputLine = bReader.readLine()) != null) {
    pingResult += inputLine;
}

bReader.close();
process.destroy();

System.out.println(pingResult);
Run Code Online (Sandbox Code Playgroud)

java inputstream character-encoding inputstreamreader

5
推荐指数
1
解决办法
2万
查看次数

带有 readLine() 的 while 循环

这是我的问题:正常的 while 循环看起来像这样 -

while(condition){statements} 
Run Code Online (Sandbox Code Playgroud)

and 语句执行直到条件变为false并且循环结束。我对这种陈述的逻辑感兴趣:

while((a=b.readLine) != null) { ... } 
Run Code Online (Sandbox Code Playgroud)

就我而言,它用于客户端 - 服务器通信。条件有时为真,有时为真,但循环看起来像是在永远测试条件,当为真时,{}执行语句。在我看来,循环等待条件为真,然后运行语句。它是否以某种方式与方式BufferedReaderInputStreamReader工作或什么有关?此外,这个循环似乎永远不会结束,它只是等待条件成立true,然后运行语句,然后再次等待条件成立true,等等。我将感谢您的任何澄清。

java readline while-loop bufferedreader inputstreamreader

3
推荐指数
2
解决办法
1万
查看次数

在Java中读取非常大的文本文件

我正在使用以下代码读取大文件:

InputStreamReader isr = new InputStreamReader(new FileInputStream(FilePath));
BufferedReader br = new BufferedReader(isr);
while ((cur = br.readLine()) != null)
Run Code Online (Sandbox Code Playgroud)

我可以使用上述代码读取大文件,但我想知道这些读取器在内存中的内部工作方式。inputstreamreader扮演什么角色?逐行读取文件(例如2 GB)时分配了多少块内存?

java inputstream bufferedreader inputstreamreader

3
推荐指数
1
解决办法
632
查看次数

阅读网页内容

嗨,我想阅读包含使用java的德语字符的网页内容,遗憾的是,德语字符显示为奇怪的字符.任何帮助请在这里是我的代码:

String link = "some german link";

            URL url = new URL(link);
            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);
            }
Run Code Online (Sandbox Code Playgroud)

java character-encoding inputstreamreader

2
推荐指数
1
解决办法
5951
查看次数

打印任意长度的用户输入名称的首字母以及java中的完整姓氏

我是java新手,我一直在尝试解决一个问题,我觉得答案可能比我的代码更简单.问题是打印任意长度的用户输入名称的首字母以及完整的姓氏.但这有没有任何String.split()或arrays.I尝试让用户一次输入一个单词,但有没有可能的方法立即获取整个名称并按要求执行.我的代码如下:

import java.io.*;
public class Initials {
    public static void main(String[]args)throws IOException{
        BufferedReader br =  new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter the number of words your name contains");
        int n=Integer.parseInt(br.readLine());
        String str="";
        for(int x=1;x<=n-1;x++){
            System.out.println("Enter your name's word number:"+" "+x);
            String s=br.readLine();
            String st=s.toUpperCase();
            char ch=st.charAt(0);
            str=str+ch+".";
        }
        System.out.println("Enter your surname");
        String sur=br.readLine();
        str=str+" "+sur.toUpperCase();
        System.out.println(str);
    }
}
Run Code Online (Sandbox Code Playgroud)

java string bufferedreader inputstreamreader

2
推荐指数
1
解决办法
7663
查看次数

是否有必要关闭BufferedReader中的InputStreamReader

我们都知道,关闭我们在代码末尾定义的所有 StreamReader 是一个好习惯。

现在我们可以看到两个 Reader 的定义如下。BufferedReader 和InputStreamReader。BufferedReader 已关闭,但我们无法关闭InputStreamReader。

JAVA代码:

BufferedReader in = new BufferedReader(new InputStreamReader(
    connection.getInputStream()));
if (in != null) {
    in.close();
    }
Run Code Online (Sandbox Code Playgroud)

问题来了,括号里的InputStreamReader是否应该关闭呢?这样的代码会不会给程序带来一些问题呢?请告诉我,谢谢~

java inputstreamreader

2
推荐指数
1
解决办法
5263
查看次数

即使InputStream应该保持打开状态,我也需要关闭InputStreamReader吗?

InputStream作为来自某个地方,在那里将被进一步处理,然后关闭的参数传递。所以我不想在InputStream这里关闭。考虑以下代码:

void readInputStream(final InputStream inputStream) {
    final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
    String line;
    while ((line = bufferedReader.readLine() != null) {
        // do my thing
    }
}
Run Code Online (Sandbox Code Playgroud)

根据另一个Stackoverflow帖子,如果我关闭BufferedReaderand和/或the InputStreamReader,那么底层InputStream也将被关闭。

我的问题:即使底层InputStream在其他地方关闭,读者也需要关闭吗?如果不关闭阅读器,是否会发生内存泄漏?

java memory memory-management bufferedreader inputstreamreader

2
推荐指数
1
解决办法
106
查看次数

InputStreamReader编码器

我的问题很简单:

new InputStreamReader(is, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

使β和·看​​起来像问号.

我应该使用哪个编码器来正确查看这些字符?

java encoding inputstreamreader

1
推荐指数
1
解决办法
2145
查看次数

来自System.in的BufferedReader输入尝试抛出异常

我试图使用BufferedReader从输入中读取a.它第一次工作,但第二次运行我得到一个例外.

john@fekete:~/devel/java/pricecalc$ java frontend.CUI 
> gsdfgd
Invalid command!
> I/O Error getting string:  java.io.IOException: Stream closed
I/O Error: java.io.IOException: java.io.IOException: Stream closed
> I/O Error getting string:  java.io.IOException: Stream closed
I/O Error: java.io.IOException: java.io.IOException: Stream closed
> I/O Error getting string:  java.io.IOException: Stream closed
Run Code Online (Sandbox Code Playgroud)

它只是在循环中继续运行.我一定错过了什么.

public static void main(String args[]) {
            if (args.length == 0) {
                    while (!exit) {
                            try {
                                    exit = processLine(commandLine());
                            } catch (IOException e) {
                                    System.out.println("I/O Error: " + e);
                            }
                    }
                    System.out.println("Bye!");
            } else if …
Run Code Online (Sandbox Code Playgroud)

java input bufferedreader inputstreamreader

1
推荐指数
1
解决办法
2万
查看次数

无法解析为循环中for循环中的变量

我似乎无法得到底部"我"链接到下面的for循环中的变量我哪里出错?我试图编辑它更改变量并将变量放在for循环上面所有我得到的是错误

我也在使用eclipse luna

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class AssignmentProgramming {

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);

    System.out.println("Please enter a string");


    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String data = reader.readLine();


    char ch =(char) System.in.read();

    int letters=0;

    for(int i=0; i<data.length(); i++);
    {
        char c=data.charAt(i);//<-- This i here
        if (c==ch);
        {letters++;
    }



      }
    System.out.println(letters);
    }

    }
Run Code Online (Sandbox Code Playgroud)

java variables bufferedreader inputstreamreader

1
推荐指数
1
解决办法
5846
查看次数