这是代码:
package testpack;
import java.io.*;
public class InputStreamReadDemo {
private void readByte() throws IOException {
System.out.print("Enter the byte of data that you want to be read: ");
int a = System.in.read();
System.out.println("The first byte of data that you inputted corresponds to the binary value "+Integer.toBinaryString(a)+" and to the integer value "+a+".");
// tried writing System.in.close(); and System.in.reset();
}
private void readLine() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a line of text: ");
String res = br.readLine(); …Run Code Online (Sandbox Code Playgroud) 感谢您的时间 :)。我已经查看了 TYPE_INT_RGB 和 TYPE_INT_ARGB 的格式,现在知道如何将这个 TYPE_INT_RGB 转换为 4 个单独的值,但是如果我要对每个值进行修改(比如每个添加 20,所以 Alpha+=20,red+=20 ,等等)我将如何将这些值重新组合成这种 TYPE_INT_RGB 格式?谢谢!
所以我试图让一个基本的读者开始工作,这样我就可以在以后的身份验证过程中处理文件。
我遇到的问题是我的 BufferedReader 行出现错误,导致我的 try 函数抛出非法启动异常并且它不会运行。Eclipse 在 br 声明末尾的分号上显示一个错误,并说我应该放一个 { 但我不明白为什么这是必要的。
BufferedReader br = new BufferedReader(new FileReader("Assign4.txt"));
Run Code Online (Sandbox Code Playgroud)
我试图把它放在那里,但它打破了整个尝试部分。
package main;
import java.io.*;
public class file_interface
{
BufferedWriter wr = new BufferedWriter(new FileWriter("target.txt"));
BufferedReader br = new BufferedReader(new FileReader("Assign4.txt"));
try
{
int count = 1;
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null)
{
sb.append(count++);
sb.append(line);
sb.append("\n");
wr.write(line);
line = br.readLine();
}
}
catch (IOException e)
{
System.err.println("Error: " + e);
}
finally
{
br.close();
wr.close(); …Run Code Online (Sandbox Code Playgroud) 晚上好,
我需要从文件中读取一些行,该文件是 csv,文件的结构如下:
4,
Mo Farah,30,
Jessica Ennis,27,
Run Code Online (Sandbox Code Playgroud)
我需要读取这些值并将它们放入变量中,这就是我尝试执行此操作的方式:
while(nextline != null){
StringTokenizer st = new StringTokenizer(nextline,",");
int size = Integer.parseInt(st.nextToken());
System.out.println(size);
nextline = reader.readLine();
StringTokenizer st2 = new StringTokenizer(nextline, ","); //why???
String name = st2.nextToken();
System.out.println(name);
int age = Integer.parseInt(st2.nextToken());
System.out.println(age);
Run Code Online (Sandbox Code Playgroud)
第一个 int (4) 读取得很好,但是如果我想移动到下一行,它会抛出 noSuchElementException,所以我必须在“//why???”旁边写下这一行 为了移至下一行,每次我想移至下一行时,我真的必须实例化一个新的分词器吗?或者有更好的方法吗?
非常感谢
我不确定为什么下面的代码每次都会导致Java覆盖我文件中已有的数据,而我想要它实际上是在新行上写下每个新的数据.我已经包含了相关的代码片段(我知道你可能认为变量中存在错误,但是没有,程序运行正常).有人可以帮助我理解导致这种情况的原因,是我使用文件编写器的方式吗?
String DirToWriteFile = System.getProperty("user.dir") + "/VirtualATM.txt"; //Get path to write text file to.
String Details = "Name: " + name + " CardNo: " + CardNo + " Current Balance: " + balance + " overdraft? " + OverDraft + " OverDraftLimit: " + OverDraftLimit + " pin: " + PinToWrite;
try{
//Create writer to write to files.
File file = new File(DirToWriteFile);
Writer bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8"));
// FileReader reads text files in the default …Run Code Online (Sandbox Code Playgroud) 我有一个文本文件.我想逐行阅读并将其转换为二维数组.我写了如下内容:
BufferedReader br = new BufferedReader (new FileReader ("num.txt"));
String line = br.readLine();
while( line != null) {
System.out.printf(line);
}
Run Code Online (Sandbox Code Playgroud)
这变成了无限循环.在完成阅读和打印线之后,我想继续下一行.但我不知道该怎么做.
我是 Android 开发新手,正在尝试制作一个应用程序,该应用程序只需将给定网页的源代码作为字符串下载并将其显示在日志中。我让它工作了,对于 google.com,它工作得相当快。然而,对于我想要的网页,它需要八分钟,即使我的计算机的网络浏览器可以在几秒钟内加载它。在这八分钟内,日志中一遍又一遍地显示四条消息,其值各不相同。他们是:
有人可以解释一下发生了什么以及如何让这些内容的下载速度显着加快吗?这是某种内存问题吗?我需要使用某种 BufferedReader 吗?
日志消息:
代码:

我有一个连接,像这样创建:
conn, err = net.Dial("tcp", "127.0.0.1:20000")
Run Code Online (Sandbox Code Playgroud)
我尝试过两种方式从这个连接中读取.我认为他们都必须工作,但第一种选择却不行.
这是第一种方式:
var bytes []byte
for i := 0; i < 4; i++ {
conn.Read(bytes)
}
fmt.Printf("%v", bytes)
Run Code Online (Sandbox Code Playgroud)
此方法的输出是:
[]
Run Code Online (Sandbox Code Playgroud)
这是完全相同的事情,完成bufio.Reader:
func readResponse(conn net.Conn) (response string, err error) {
reader := bufio.NewReader(conn)
_, err = reader.Discard(8)
if err != nil {
return
}
response, err = reader.ReadString('\n')
return
}
Run Code Online (Sandbox Code Playgroud)
此函数返回服务器在TCP连接另一端给出的响应.
为什么bufio.Reader.Read()工作,但net.Conn.Read()不是?
我已经创建了从 csv 文件读取数据的代码。但是,我无法处理 \xc2\xa3 等特殊字符。
\n\n例如,My Base Cost (K\xc2\xa3)被读作My Base Cost (K\xc3\x83\xe2\x80\x9a\xc3\x82\xc2\xa3).
我可以做什么来纠正这个问题?
\n\npublic void parseCSVFile(String filename){\n\n try {\n br = new BufferedReader(new FileReader(csvDirectory + filename));\n\n while ((parsedLines = br.readLine()) != null) {\n\n String[] parsedData = parsedLines.split(csvSplitByComma);\n\n entireFeed.add(parsedData[0]);\n entireFeed.add(parsedData[1]);\n\n System.out.println(parsedData[0]);\n System.out.println(parsedData[1]);\n\n it = entireFeed.iterator();\n }\n } catch (Exception e) {\n e.printStackTrace();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n 将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
bufferedreader ×10
java ×9
android ×1
connection ×1
download ×1
go ×1
image ×1
inputstream ×1
iostream ×1
memory ×1
reader ×1
readline ×1
system.in ×1
try-catch ×1